Search in sources :

Example 46 with BasicCurlParser

use of org.apache.jmeter.protocol.http.curl.BasicCurlParser in project jmeter by apache.

the class BasicCurlParserTest method testCert.

@Test
public void testCert() {
    String cmdLine = "curl 'http://jmeter.apache.org/' -E 'test.pem' ";
    BasicCurlParser basicCurlParser = new BasicCurlParser();
    BasicCurlParser.Request request = basicCurlParser.parse(cmdLine);
    assertEquals("cert", request.getCaCert(), "With method 'parser',the cacert need to show a warning' ");
}
Also used : BasicCurlParser(org.apache.jmeter.protocol.http.curl.BasicCurlParser) Test(org.junit.jupiter.api.Test)

Example 47 with BasicCurlParser

use of org.apache.jmeter.protocol.http.curl.BasicCurlParser in project jmeter by apache.

the class BasicCurlParserTest method testFormWithQuotedFilename.

@Test
public void testFormWithQuotedFilename() {
    // The quotes will be removed later by the consumer, which is ParseCurlCommandAction
    String cmdLine = "curl 'https://www.exaple.invalid/' " + "--form 'image=@\"/some/file.jpg\"'";
    BasicCurlParser basicCurlParser = new BasicCurlParser();
    BasicCurlParser.Request request = basicCurlParser.parse(cmdLine);
    List<Pair<String, ArgumentHolder>> res = request.getFormData();
    assertTrue(res.contains(Pair.of("image", FileArgumentHolder.of("/some/file.jpg"))), "With method 'form', we should post form data: " + request.getFormData());
}
Also used : BasicCurlParser(org.apache.jmeter.protocol.http.curl.BasicCurlParser) Pair(org.apache.commons.lang3.tuple.Pair) Test(org.junit.jupiter.api.Test)

Example 48 with BasicCurlParser

use of org.apache.jmeter.protocol.http.curl.BasicCurlParser in project jmeter by apache.

the class ParseCurlCommandActionTest method testDataFormException.

@Test
public void testDataFormException() throws Exception {
    ParseCurlCommandAction p = new ParseCurlCommandAction();
    HTTPSamplerProxy httpSampler = (HTTPSamplerProxy) HTTPSamplerFactory.newInstance(HTTPSamplerFactory.DEFAULT_CLASSNAME);
    httpSampler.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());
    httpSampler.setProperty(TestElement.NAME, "HTTP Request");
    BasicCurlParser basicCurlParser = new BasicCurlParser();
    Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -F 'test=name' --data 'fname=a&lname=b'");
    Method method = getMethodFor("setFormData", Request.class, HTTPSamplerProxy.class);
    try {
        method.invoke(p, request, httpSampler);
        throw new IllegalStateException("Should have thrown InvocationTargetException");
    } catch (InvocationTargetException | IllegalAccessException e) {
        assertEquals("--form and --data can't appear in the same command", e.getCause().getMessage());
    }
}
Also used : BasicCurlParser(org.apache.jmeter.protocol.http.curl.BasicCurlParser) HTTPSamplerProxy(org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy) HttpTestSampleGui(org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui) Request(org.apache.jmeter.protocol.http.curl.BasicCurlParser.Request) ParseCurlCommandAction(org.apache.jmeter.protocol.http.gui.action.ParseCurlCommandAction) Method(java.lang.reflect.Method) InvocationTargetException(java.lang.reflect.InvocationTargetException) Test(org.junit.jupiter.api.Test)

Example 49 with BasicCurlParser

use of org.apache.jmeter.protocol.http.curl.BasicCurlParser in project jmeter by apache.

the class ParseCurlCommandActionTest method testCreateHttpRequest.

@Test
public void testCreateHttpRequest() throws Exception {
    ParseCurlCommandAction p = new ParseCurlCommandAction();
    BasicCurlParser basicCurlParser = new BasicCurlParser();
    ThreadGroup threadGroup = new ThreadGroup();
    TestPlan testPlan = new TestPlan();
    HashTree tree = new HashTree();
    HashTree testPlanHT = tree.add(testPlan);
    HashTree threadGroupHT = testPlanHT.add(threadGroup);
    Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/'  -E '<CA certificate>'");
    Method method = getMethodFor("createHttpRequest", Request.class, HashTree.class, String.class);
    HTTPSamplerProxy httpSampler = (HTTPSamplerProxy) method.invoke(p, request, threadGroupHT, "comment");
    assertEquals("/", httpSampler.getPath(), "path should be set in httpsampler");
    assertEquals("jmeter.apache.org", httpSampler.getDomain(), "domain should be set in httpsampler");
    assertEquals(80, httpSampler.getPort(), "port should be 80 in httpsampler");
    assertEquals("GET", httpSampler.getMethod(), "method should be set in httpsampler");
}
Also used : BasicCurlParser(org.apache.jmeter.protocol.http.curl.BasicCurlParser) HashTree(org.apache.jorphan.collections.HashTree) HTTPSamplerProxy(org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy) TestPlan(org.apache.jmeter.testelement.TestPlan) Request(org.apache.jmeter.protocol.http.curl.BasicCurlParser.Request) ParseCurlCommandAction(org.apache.jmeter.protocol.http.gui.action.ParseCurlCommandAction) ThreadGroup(org.apache.jmeter.threads.ThreadGroup) Method(java.lang.reflect.Method) Test(org.junit.jupiter.api.Test)

Example 50 with BasicCurlParser

use of org.apache.jmeter.protocol.http.curl.BasicCurlParser in project jmeter by apache.

the class ParseCurlCommandActionTest method testParseCommands.

@Test
public void testParseCommands() {
    // commands from textpanel
    ParseCurlCommandAction p = new ParseCurlCommandAction();
    String cmdLine = "curl 'http://jmeter.apache.org/' --max-redirs 'b' " + "curl 'http://jmeter.apache.org/' --include --keepalive-time '20'";
    List<String> commands = p.readFromTextPanel(cmdLine);
    List<Request> requests = p.parseCommands(false, commands);
    BasicCurlParser basicCurlParser = new BasicCurlParser();
    Request request1 = basicCurlParser.parse("curl 'http://jmeter.apache.org/' --max-redirs 'b'");
    assertEquals(request1.toString(), requests.get(0).toString());
    assertEquals(2, requests.size());
    // commands from file
    cmdLine = "curl 'http://jmeter.apache.org/' --max-redirs 'b'" + System.lineSeparator() + "curl 'http://jmeter.apache.org/' --include --keepalive-time '20'";
    commands = p.readFromTextPanel(cmdLine);
    requests = p.parseCommands(true, commands);
    request1 = basicCurlParser.parse("curl 'http://jmeter.apache.org/' --max-redirs 'b'");
    assertEquals(request1.toString(), requests.get(0).toString(), "The command line should be parsed in turn");
    assertEquals(2, requests.size());
}
Also used : BasicCurlParser(org.apache.jmeter.protocol.http.curl.BasicCurlParser) Request(org.apache.jmeter.protocol.http.curl.BasicCurlParser.Request) ParseCurlCommandAction(org.apache.jmeter.protocol.http.gui.action.ParseCurlCommandAction) Test(org.junit.jupiter.api.Test)

Aggregations

BasicCurlParser (org.apache.jmeter.protocol.http.curl.BasicCurlParser)84 Test (org.junit.jupiter.api.Test)81 Request (org.apache.jmeter.protocol.http.curl.BasicCurlParser.Request)20 ParseCurlCommandAction (org.apache.jmeter.protocol.http.gui.action.ParseCurlCommandAction)19 Method (java.lang.reflect.Method)16 Pair (org.apache.commons.lang3.tuple.Pair)8 HTTPSamplerProxy (org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy)6 DNSCacheManager (org.apache.jmeter.protocol.http.control.DNSCacheManager)4 AuthManager (org.apache.jmeter.protocol.http.control.AuthManager)3 HttpTestSampleGui (org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui)3 InvocationTargetException (java.lang.reflect.InvocationTargetException)2 Authorization (org.apache.jmeter.protocol.http.control.Authorization)2 Cookie (org.apache.jmeter.protocol.http.control.Cookie)2 CookieManager (org.apache.jmeter.protocol.http.control.CookieManager)2 TestPlan (org.apache.jmeter.testelement.TestPlan)2 ThreadGroup (org.apache.jmeter.threads.ThreadGroup)2 HashTree (org.apache.jorphan.collections.HashTree)2 Field (java.lang.reflect.Field)1 URL (java.net.URL)1 ArrayList (java.util.ArrayList)1