Jmeter GUI 模式在达到停止条件时不停止执行(一些线程无法停止)

Jmeter GUI mode not stopping execution when stop condition has been reached (a few threads cannot be stopped)

我将 Jmeter 5.2.1 与“经典”线程组一起使用,以模拟负载在 2 小时内连续增加到 400 个线程的压力场景。 我添加了一个 AutoStop Listener,当平均响应时间大于 4000 持续 20 秒或错误率大于 1% 持续 20 秒时,它应该停止脚本执行。

下面是线程组的屏幕截图,您还可以在其中看到右上角显示的时间(超过 2 小时),该时间在旋转时仍在继续(计时器没有停止),以及显示 AutoStop Listener 已触发停止条件并且线程已开始停止的日志,在另一个屏幕截图中,您可以看到日志写入了许多“Thread finished”语句,但我认为问题在于一些线程以某种方式挂起,jmeter 无法阻止它们。

更新: 从 jmeter gui 中按下“停止”按钮后添加另一个屏幕截图。请注意上次记录与我按下“停止”按钮的时间之间的时间间隔。在那里你可以看到只有在我按下按钮后,我才会收到如下日志消息: 停止:线程组 1-1 中断:线程组 1-1 由于线程检测到结束时间而停止:线程组 1-1 最后: 通知测试听众测试结束

有人可以帮我理解这种行为吗?为什么执行没有自行停止?

当您启动 JMeter 时,它会显示此消息:

所以除了测试开发和调试之外,你不应该将 JMeter GUI 用于任何其他事情,当涉及到测试执行时 you should be running JMeter in command-line non-GUI mode 比如:

jmeter -n -t /path/to/your/testplan.jmx -l /path/to/results.jtl

测试完成后,您可以生成 HTML Reporting Dashboard 来分析结果

如果您需要实时观察指标,您可以使用 Backend Listener or Taurus framework