我已根据netty.io项目提供的HTTP server example实施了一项HTTP服务。
当我从命令行(wget)或浏览器执行对服务URL的GET请求时,我会按预期收到结果。
当我使用ApacheBench ab -n 100000 -c 8 http://localhost:9000/path/to/service
执行负载测试时,不会遇到任何错误(无论是在服务上还是在ab方面),并且看到请求处理持续时间的公平数字。
之后,我在JMeter中设置了一个测试计划,其中一个线程组包含1个线程,循环计数为2.我插入了一个HTTP请求采样器,我只是添加了服务器名称localhost
,端口号{ {1}}和路径9000
。然后我还添加了/path/to/service
和View Results Tree
侦听器。
最后,我执行了测试计划并收到了一个有效的响应和一个显示以下内容的错误:
Summary Report
在响应数据选项卡中找到的关联异常显示以下内容
Thread Name: Thread Group 1-1
Sample Start: 2015-06-04 09:23:12 CEST
Load time: 0
Connect Time: 0
Latency: 0
Size in bytes: 2068
Headers size in bytes: 0
Body size in bytes: 2068
Sample Count: 1
Error Count: 1
Response code: Non HTTP response code: org.apache.http.NoHttpResponseException
Response message: Non HTTP response message: The target server failed to respond
Response headers:
HTTPSampleResult fields:
ContentType:
DataEncoding: null
由于我已经运行了类似的服务,它接收和处理没有显示错误的网络跟踪数据,这可能是我的测试计划或JMeter中的问题..但我不确定: - (
有没有人遇到类似的行为?提前致谢; - )
答案 0 :(得分:1)
问题可能与Keep-Alive管理有关。
阅读那些:
所以你的解决方案就是其中之一:
如果您确定这是一个存活问题:
每晚尝试jmeter http://jmeter.apache.org/nightly.html:
Download the _bin and _lib files
Unpack the archives into the same directory structure
The other archives are not needed to run JMeter.
并调整httpclient4.idletimeout
解决方法是按照以下方式增加重试或添加连接陈旧检查: