获取响应代码:非 HTTP 响应代码:java.net.ConnectException 对于 Jmeter 中的某些示例

Getting Response code: Non HTTP response code: java.net.ConnectException for some of the samples in Jmeter

尝试通过 Jmeter 为一系列用户访问 Rest API Web 服务。 (20、30、50、80 个用户)。 80% 的请求样本得到处理,但大约 20% 的样本在采样器结果下出现以下消息错误。

"响应代码:非 HTTP 响应代码:java.net.ConnectException 响应消息:非 HTTP 响应消息:连接超时:connect”。

是Jmeter 还是服务器端的问题?对此的解决方案是什么?

通常超时表示服务器端有问题。需要检查的几件事:

  1. 确保您的 Web 服务器 and/or 数据库配置为接受多达 80 个并发连接
  2. 在负载测试期间手动或即使用 JMeter PerfMon 插件监控您的服务器状态,以查看服务器是否能够承受此类负载。
  3. 尝试使用 ramp-up 来逐渐增加负载以确定超时开始发生的时间点
  4. 或者,您可以通过 Constant Throughput Timer 限制每秒请求数并增加其值以获得您的应用程序能够处理的每秒最大请求数 - 也许它会给您一些线索。

当您的请求需要更长的时间才能得到响应时,通常会发生这种情况,比如说 62 秒。

在这种情况下,默认情况下 ELB 有 59 秒超时条件,这意味着如果任何请求处于时间等待状态超过 59 秒,它会被 ELB 自动杀死 "gateway time out or Connection time out "