当测试服务器放弃时,Jmeter 测试总是冻结



当尝试在JMeter 5.1.1中运行负载测试时,如果服务器放弃,测试总是在最后冻结。如果服务器不放弃,测试将正确完成。现在这很可怕,因为测试的重点是看看服务器在什么时候放弃,但如前所述,测试永远不会结束,有必要手动杀死它。

例:

  • 测试为本地服务器运行 500 个线程顺利并完成 与tiding up消息
  • 为基于云的服务器运行 500 个线程的完全相同的测试 在某些时候,错误测试的结果达到大约 99% 然后 冻结摘要,如下例所示:

摘要 + 99 in 00:10:11 = 8.7/s 平均: 872 最小: 235 最大: 5265 错误: 23633 (100.00%( 活跃: 500 开始: 500 完成: 480

就是这样,你可以永远等待,它只会卡在这一点上。

尝试使用不同的线程类型但没有成功。下一步是更改 Sampler 错误行为,是的,将其从Continue更改为Start Next Thread LoopStop thread帮助和测试正在结束,但随后导致 html 看起来奇怪且不准确。我什至尝试在 HTTP 请求默认值中将超时设置设置为 60000 毫秒,但这也给出了奇怪的结果。

也就是说,有人可以告诉我如何成功运行服务器的负载测试,以便无论问题如何都始终完成并且准确> 此外,我确实看到了关于同一问题的几个旧问题,他们没有任何有用的答案。或者是否有任何其他更可靠的开源测试应用程序也具有GUI来创建测试?

您有 100% 的错误,无论如何对我来说看起来很"奇怪"。

如果在 HTTP 请求默认值中设置连接和响应超时没有帮助 - 很可能是"挂起"的原因存在于其他地方,确定它的唯一方法是进行线程转储并分析线程的状态,注意那些BLOCKED和/或WAITING的线程。然后,您应该能够将其追溯到导致问题的JMeter测试元素,并仔细研究可能出现的问题。

其他提示包括:

  • 在 jmeter.log 文件中查找可疑条目
  • 确保 JMeter 有足够的余量在 CPU、RAM、网络套接字等方面运行。可以使用JMeter PerfMon插件来完成
  • 确保遵循 JMeter 负载测试"内存不足"失败的 9 个简单解决方案中的建议

最新更新