JMeter - Trouble sending HTTP request with POST va

2019-02-22 12:40发布

问题:

I am trying to load test a java servlet that fetches records from an archive database.

The servlet works as follows:

  • 1-Reads in post variables from HTTP header
  • 2-Uses variables to query database
  • 3-Returns XML

I have setup a test which I want to fire off HTTP requests with post variables however the test is not working, getting errors with J Meter.

Screenshot 1 - Shows the structure of the test

Screenshot 2 - Shows the CSV file I am reading from

I have placed the CSV file in the same folder that my test plan is saved in!

Screenshot 3 - Shows the HTTP request

This is the error output:

Thread Name: Thread Group 1-1 Sample Start: 2012-11-20 10:35:27 GMT Load time: 0 Latency: 0 Size in bytes: 1113 Headers size in bytes: 0 Body size in bytes: 1113 Sample Count: 1 Error Count: 1 Response code: Non HTTP response code: java.net.URISyntaxException Response message: Non HTTP response message: Expected closing bracket for IPv6 address at index 13: http://[http://sophos1.testserver.co.uk/servlet/archive]:61061/

Response headers:

HTTPSampleResult fields: ContentType: DataEncoding: null

POST Request

POST http://[http://sophos1.testserver.co.uk/servlet/archive]:61061/

POST data:


[no cookies]

Returned DATA

java.net.URISyntaxException: Expected closing bracket for IPv6 address at index 13: http://[http://sophos1.testserver.co.uk/servlet/archive]:61061/
        at java.net.URI$Parser.fail(Unknown Source)
        at java.net.URI$Parser.failExpecting(Unknown Source)
        at java.net.URI$Parser.parseServer(Unknown Source)
        at java.net.URI$Parser.parseAuthority(Unknown Source)
        at java.net.URI$Parser.parseHierarchical(Unknown Source)
        at java.net.URI$Parser.parse(Unknown Source)
        at java.net.URI.<init>(Unknown Source)
        at java.net.URL.toURI(Unknown Source)
        at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:232)
        at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:62)
        at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1075)
        at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1064)
        at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:426)
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:255)
        at java.lang.Thread.run(Unknown Source)

Please help!

Thanks

回答1:

Remove http:// from Server Name / IP field of your HTTP Request Sampler (that's pointed in HTTP Request fields description).

Look onto your generated POST request above in description:

POST Request
POST http://[http://sophos1.testserver.co.uk/servlet/archive]:61061/

Configure your HTTP Request as the following instead:

Server Name: sophos1.testserver.co.uk
Path: /servlet/archive
Implementation: Java


回答2:

The easy way is that you could leave the server name blank and set the path to

http://sophos1.testserver.co.uk/servlet/archive



回答3:

Check if there are any spaces in ServerName or IP field.

This gave me this error :

Response message: Non HTTP response message: Illegal character in authority at index 7:

When extra spaces were trimmed in the beginning, it worked well.