groovy - JMeter 脚本 - 根据条件停止所有线程组(整个测试)

标签 groovy jmeter threadgroup

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

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

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

请看:

  • 我的 JMeter 版本:5.3
  • 常规版本:3.0.3

最佳答案

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

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

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

enter image description here

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

  • prev.setStopTest(true) - 优雅地“请求”线程停止
  • prev.setStopTestNow(true) - 强制“告诉”线程停止(您可能会遇到与异常线程中断相关的额外错误)

关于groovy - JMeter 脚本 - 根据条件停止所有线程组(整个测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67890964/

相关文章:

groovy - 获取未知类型: import in groovy in Jenkins Pipeline

java - 为什么 JMeter 在负载测试中创建这么多线程?

Redis 性能测试

javascript - 使用 JSR223 断言写入文件

performance - "Run Thread Groups consecutively"如何影响 setUp/teardown 线程组

spring-boot - org.dozer.MappingException:找不到类中字段(metaClass)的读取或写入方法

jenkins - 无法实例化 Jenkins 共享库中的对象

java - 找不到符号错误 : Lombok 1. 18.6 不适用于 Gradle 5.2.1、JDK 10

multithreading - GPU 上的线程和线程组

multithreading - “threadgroup_barrier”没有区别