非 HTTP 响应消息:目标服务器无法响应:我的服务器是否无法处理负载

Non HTTP response message: The target server failed to respond: Is my server failing to handle load

我使用 jmeter 准备了一个 jmx 文件,运行 blazemeter 上的测试用例用于测试我服务器上的负载。测试完成后,我可以看到我的一项服务失败了。虽然不是所有的时间,但有时。在 blazemeter 的错误选项卡中,我可以看到它正在给出

Non HTTP response message: The target server failed to respond

我不确定,是我的服务器无法处理负载,还是其他原因。在我的设置中,线程是 50。任何人都可以帮助我,这是因为服务器无法处理加载。提前致谢。

您似乎遇到了 Connection Reset since JMeter 2.10 ? Wiki 文章中描述的问题。

If you upgraded recently to JMeter 2.10 or 2.11, you may have noticed increased errors of this type:

Socket closed

Non HTTP response code: org.apache.http.NoHttpResponseException (the target server failed to respond)

所以

  1. 将 HTTP 请求的“实现”更改为 HTTPClient4

  2. 将接下来的两行添加到 user.properties 文件(通常位于 JMeter 安装的 /bin 文件夹下)

    httpclient4.retrycount=1
    hc.parameters.file=hc.parameters
    
  3. hc.parameters 文件中(也位于 JMeter 的 /bin 文件夹下)取消注释以下行:

    http.connection.stalecheck$Boolean=true
    

有关不同 JMeter 属性以及设置和更改它们的方法的更多信息,请参阅 Apache JMeter Properties Customization Guide

对于 jmeter 2.13 DmitriT 解决方案有类似的问题让我指出了正确的方向,但在我的情况下 java 或 HttpClient3.1 工作,4.0 没有。

在我的例子中,是我正在执行的呼叫的 header 导致了问题。 它是:

Content-Type:application/json;charset=UTF-8

设置为:

Content-Type:application/json

我都做了。

您对 HTTPClient4 的 HTTP 请求的

范围 "Implementation" 将接下来的两行添加到 user.properties 文件(通常位于 JMeter 安装的 /bin 文件夹下)

httpclient4.retrycount=1 hc.parameters.file=hc.parameters 在 hc.parameters 文件中(也位于 JMeter 的 /bin 文件夹下)取消注释以下行:

http.connection.stalecheck$Boolean=true

但在 apache jmeter 5.1 中仍然面临这个问题

遇到了同样的问题并通过取消选中 HTTP 请求的“使用 KeepAlive”选项修复了它。请参考屏幕截图。我想,根本原因与连接被关闭和 JMeter 客户端试图使用相同的连接有关。