JMeter - 使用POST变量发送HTTP请求时遇到问题?

时间:2012-11-20 10:44:56

标签: jmeter load-testing

我正在尝试加载测试从归档数据库中获取记录的java servlet。

servlet的工作原理如下:

  • 1 - 从HTTP标头中读取变量
  • 2 - 使用变量查询数据库
  • 3 - 返回XML

我已经设置了一个测试,我希望使用post变量触发HTTP请求,但测试不起作用,J Meter出错。

屏幕截图1 - 显示测试的结构 enter image description here

屏幕截图2 - 显示我正在阅读的CSV文件 enter image description here

我已将CSV文件放在保存测试计划的同一文件夹中!

屏幕截图3 - 显示HTTP请求 enter image description here

这是错误输出:

  

主题名称:主题组1-1样本开始时间:2012-11-20 10:35:27 GMT   加载时间:0延迟:0大小(字节):1113标头大小(字节):0   正文大小(字节):1113样本计数:1错误计数:1响应代码:   非HTTP响应代码:java.net.URISyntaxException响应消息:   非HTTP响应消息:IPv6地址的预期结束括号   在索引13:   http://[http://sophos1.testserver.co.uk/servlet/archive]:61061/

     

回复标题:

     

HTTPSampleResult字段:ContentType:DataEncoding:null

POST请求

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

POST data:


[no cookies]

返回数据

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)

请帮忙!

谢谢

3 个答案:

答案 0 :(得分:18)

从HTTP请求采样器的服务器名称/ IP字段中删除http://(在HTTP Request fields description中指向)。

查看上面描述的生成的POST请求:

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

将HTTP请求配置如下:

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

答案 1 :(得分:1)

简单的方法是您可以将服务器名称留空并将路径设置为

  

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

答案 2 :(得分:0)

检查ServerNameIP字段中是否有空格。

这给了我这个错误:

  

响应消息:非HTTP响应消息:非法字符   指数7的权威:

如果在开始时修剪了额外的空格,那么效果很好。