You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2019/09/23 19:21:49 UTC
[jmeter] 01/02: Fix unparsed --request Fix unhandled --url
This is an automated email from the ASF dual-hosted git repository.
pmouawad pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git
commit 0a6fe646fda39e772fe2c260e6cd052f5045ab30
Author: pmouawad <p....@ubik-ingenierie.com>
AuthorDate: Mon Sep 23 21:19:37 2019 +0200
Fix unparsed --request
Fix unhandled --url
---
.../jmeter/protocol/http/curl/BasicCurlParser.java | 23 +++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/curl/BasicCurlParser.java b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/curl/BasicCurlParser.java
index 86510d8..8087a09 100644
--- a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/curl/BasicCurlParser.java
+++ b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/curl/BasicCurlParser.java
@@ -103,6 +103,7 @@ public class BasicCurlParser {
private static final int LIMIT_RATE_OPT = "limit-rate".hashCode();// $NON-NLS-1$
private static final int MAX_REDIRS_OPT = "max-redirs".hashCode();// $NON-NLS-1$
private static final int NOPROXY_OPT = "noproxy".hashCode();// $NON-NLS-1$
+ private static final int URL_OPT = "url".hashCode(); // $NON-NLS-1$
private static final List<Integer> AUTH_OPT = Arrays.asList(BASIC_OPT, DIGEST_OPT);// $NON-NLS-1$
private static final List<Integer> SSL_OPT = Arrays.asList(CAFILE_OPT, CAPATH_OPT, CERT_OPT, CIPHERS_OPT,
CERT_STATUS_OPT, CERT_TYPE_OPT, KEY_OPT, KEY_TYPE_OPT);// $NON-NLS-1$
@@ -532,7 +533,7 @@ public class BasicCurlParser {
new CLOptionDescriptor("header", CLOptionDescriptor.ARGUMENT_REQUIRED | CLOptionDescriptor.DUPLICATES_ALLOWED, HEADER_OPT,
"Pass custom header LINE to server");
private static final CLOptionDescriptor D_METHOD_OPT =
- new CLOptionDescriptor("command", CLOptionDescriptor.ARGUMENT_REQUIRED, METHOD_OPT,
+ new CLOptionDescriptor("request", CLOptionDescriptor.ARGUMENT_REQUIRED, METHOD_OPT,
"Pass custom header LINE to server");
private static final CLOptionDescriptor D_DATA_OPT =
new CLOptionDescriptor("data", CLOptionDescriptor.ARGUMENT_REQUIRED, DATA_OPT,
@@ -561,6 +562,8 @@ public class BasicCurlParser {
"Sends the 'Referer Page' information to the HTTP server ");
private static final CLOptionDescriptor D_COOKIE_OPT = new CLOptionDescriptor("cookie",
CLOptionDescriptor.ARGUMENT_REQUIRED, COOKIE_OPT, "Pass the data to the HTTP server as a cookie");
+ private static final CLOptionDescriptor D_URL_OPT = new CLOptionDescriptor("url",
+ CLOptionDescriptor.ARGUMENT_REQUIRED, URL_OPT, "url");
private static final CLOptionDescriptor D_USER_OPT = new CLOptionDescriptor("user",
CLOptionDescriptor.ARGUMENT_REQUIRED, USER_OPT, "User and password to use for server authentication. ");
private static final CLOptionDescriptor D_BASIC_OPT = new CLOptionDescriptor("basic",
@@ -651,7 +654,7 @@ public class BasicCurlParser {
private static final CLOptionDescriptor[] OPTIONS = new CLOptionDescriptor[] {
D_COMPRESSED_OPT,D_HEADER_OPT, D_METHOD_OPT,D_DATA_OPT, D_DATA_ASCII_OPT, D_DATA_URLENCODE_OPT, D_DATA_RAW_OPT, D_DATA_BINARY_OPT,
- D_FORM_OPT, D_FORM_STRING_OPT, D_USER_AGENT_OPT, D_CONNECT_TIMEOUT_OPT, D_COOKIE_OPT, D_USER_OPT,
+ D_FORM_OPT, D_FORM_STRING_OPT, D_USER_AGENT_OPT, D_CONNECT_TIMEOUT_OPT, D_COOKIE_OPT, D_URL_OPT, D_USER_OPT,
D_BASIC_OPT, D_DIGEST_OPT, D_CACERT_OPT, D_CAPATH_OPT, D_CERT_OPT, D_CERT_STATUS_OPT, D_CERT_TYPE_OPT,
D_CIPHERS_OPT, D_KEY_OPT, D_KEY_TYPE_OPT, D_GET_OPT, D_DNS_SERVERS_OPT, D_NO_KEEPALIVE_OPT, D_REFERER_OPT,
D_LOCATION_OPT, D_INCLUDE_OPT, D_INSECURE_OPT, D_HEAD_OPT, D_PROXY_OPT, D_PROXY_USER_OPT, D_PROXY_NTLM_OPT,
@@ -671,11 +674,8 @@ public class BasicCurlParser {
List<CLOption> clOptions = parser.getArguments();
Request request = new Request();
for (CLOption option : clOptions) {
- if (option.getDescriptor().getId() == CLOption.TEXT_ARGUMENT) {
- // Curl or URL
- if (!"CURL".equalsIgnoreCase(option.getArgument())) {
- request.setUrl(option.getArgument());
- }
+ if (option.getDescriptor().getId() == URL_OPT) {
+ request.setUrl(option.getArgument());
} else if (option.getDescriptor().getId() == COMPRESSED_OPT) {
request.setCompressed(true);
} else if (option.getDescriptor().getId() == HEADER_OPT) {
@@ -766,6 +766,15 @@ public class BasicCurlParser {
} else if (PROPERTIES_OPT.contains(option.getDescriptor().getId())) {
request.addOptionsInProperties(
"--" + option.getDescriptor().getName() + " is in 'httpsampler.max_redirects(1062 line)'");
+ } else if (option.getDescriptor().getId() == CLOption.TEXT_ARGUMENT) {
+ // Curl or CURL
+ if (!"CURL".equalsIgnoreCase(option.getArgument())) {
+ try {
+ request.setUrl(new URL(option.getArgument()).toExternalForm());
+ } catch (MalformedURLException ex) {
+ LOGGER.warn("Unhandled option {}", option.getArgument());
+ }
+ }
}
}
if (isPostToGet) {