Hello Felix, Sorry for noticing this a bit late. See my remark inline below.
Maybe I misunderstand the fix. Thanks Regards On Tue, Jun 9, 2020 at 12:50 PM <[email protected]> wrote: > This is an automated email from the ASF dual-hosted git repository. > > fschumacher pushed a commit to branch master > in repository https://gitbox.apache.org/repos/asf/jmeter.git > > > The following commit(s) were added to refs/heads/master by this push: > new 353ad79 Better parse curl commands with backslash at line > endings and support PUT method with data arguments > 353ad79 is described below > > commit 353ad79c5497c4d624f8b276580b6b50d45b27b9 > Author: Felix Schumacher <[email protected]> > AuthorDate: Tue Jun 9 12:49:00 2020 +0200 > > Better parse curl commands with backslash at line endings and support > PUT method with data arguments > > Bugzilla Id: 64446 > --- > .../jmeter/protocol/http/curl/BasicCurlParser.java | 6 ++++-- > .../org/apache/jmeter/curl/BasicCurlParserTest.java | 19 > +++++++++++++++++++ > xdocs/changes.xml | 1 + > 3 files changed, 24 insertions(+), 2 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 0c7fcd6..8d95da2 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 > @@ -700,7 +700,9 @@ public class BasicCurlParser { > String value = option.getArgument(0); > String dataOptionName = > option.getDescriptor().getName(); > value = getPostDataByDifferentOption(value.trim(), > dataOptionName); > - request.setMethod("POST"); > + if ("GET".equals(request.getMethod())) { > + request.setMethod("POST"); > + } > Isn't it weird to transform a GET into a POST ? Get with body data is possible in JMeter request.setPostData(value); > } else if > (FORMS_OPT.contains(option.getDescriptor().getId())) { > String nameAndValue = option.getArgument(0); > @@ -850,7 +852,7 @@ public class BasicCurlParser { > current.setLength(0); > } > } else { > - current.append(nextTok); > + current.append(nextTok.replaceAll("^\\\\[\\r\\n]", > "")); > } > lastTokenHasBeenQuoted = false; > break; > diff --git > a/src/protocol/http/src/test/java/org/apache/jmeter/curl/BasicCurlParserTest.java > b/src/protocol/http/src/test/java/org/apache/jmeter/curl/BasicCurlParserTest.java > index 39f003b..c9f9228 100644 > --- > a/src/protocol/http/src/test/java/org/apache/jmeter/curl/BasicCurlParserTest.java > +++ > b/src/protocol/http/src/test/java/org/apache/jmeter/curl/BasicCurlParserTest.java > @@ -89,6 +89,25 @@ public class BasicCurlParserTest { > } > > @Test > + public void testBackslashAtLineEnding() { > + String cmdLine = "curl \\\n-d 'hey' http://jmeter.apache.org/"; > + BasicCurlParser basicCurlParser = new BasicCurlParser(); > + BasicCurlParser.Request request = basicCurlParser.parse(cmdLine); > + assertEquals("http://jmeter.apache.org/", request.getUrl()); > + assertEquals("hey", request.getPostData()); > + } > + > + @Test > + public void testSetRequestMethodOnData() { > + String cmdLine = "curl -X PUT -d 'hey' http://jmeter.apache.org/ > "; > + BasicCurlParser basicCurlParser = new BasicCurlParser(); > + BasicCurlParser.Request request = basicCurlParser.parse(cmdLine); > + assertEquals("http://jmeter.apache.org/", request.getUrl()); > + assertEquals("hey", request.getPostData()); > + assertEquals("PUT", request.getMethod()); > + } > + > + @Test > public void testChromeParsingNotCompressed() { > String cmdLine = "curl 'https://jmeter.apache.org/' -H > 'Proxy-Connection: keep-alive' " > + "-H 'Proxy-Authorization: Basic XXXXXXXXX/' -H > 'Upgrade-Insecure-Requests: 1' " > diff --git a/xdocs/changes.xml b/xdocs/changes.xml > index f2c8db3..0772b9a 100644 > --- a/xdocs/changes.xml > +++ b/xdocs/changes.xml > @@ -109,6 +109,7 @@ Summary > > <h3>General</h3> > <ul> > + <li><bug>64446</bug>Better parse curl commands with backslash at line > endings and support <code>PUT</code> method with data arguments</li> > </ul> > > <ch_section>Non-functional changes</ch_section> > > -- Cordialement. Philippe Mouawad.
