2

我有一个 JMeter 脚本,其中包含同时运行的多个线程组。在一个线程组PostProcessor中,我想检查一个条件并停止所有线程组,然后退出。基本上,我想停止整个测试。

if (Integer.valueOf(prev.getResponseCode()) >= 400) {
    // Stop the entire test in the next line.   
}

如何在 JMeter 脚本中一次停止所有线程组?

请参见:

  • 我的 JMeter 版本:5.3
  • Groovy 版本:3.0.3
4

2 回答 2

3

JMeter 自动将状态代码高于 400 的HTTP 请求采样器视为失败,因此您不必编写脚本,您可以使用If Controller使用以下条件停止测试:

${__jexl3("${JMeterThread.last_sample_ok}"=="false",)}

并将Flow Control Action采样器添加为 If Controller 的子级

在此处输入图像描述

如果您想在 Groovy 中执行此操作 - 请使用以下方法之一:

  • prev.setStopTest(true) - 优雅地“要求”线程停止
  • prev.setStopTestNow(true)- 强制“告诉”线程停止(您可能会遇到与异常线程中断有关的额外错误)
于 2021-06-09T07:10:07.247 回答
2

您可以使用prev停止测试

 prev.setStopTestNow(true);

停止测试现在中断当前正在运行的采样器

prev - (SampleResult) - 允许访问前一个 SampleResult(如果有)

对于更突然和异常的退出,您可以退出Java 进程

 System.exit(1);
于 2021-06-09T05:07:34.443 回答