JMeter-错误后停止线程,但允许重试

JMeter-错误后停止线程,但允许重试,jmeter,jmeter-5.0,Jmeter,Jmeter 5.0,我有一个JMeter脚本,它向5个不同的端点发出请求。如果出现错误,则应停止该线程 但是,我想在停止线程之前重试对第三个端点的请求3次 以下是我的脚本的外观: 线程组(选择了停止线程时) HTTP请求(第一个端点) HTTP请求(第二个端点) 事务控制器 While控制器 HTTP请求(第三个端点) JSR223后处理器(将响应代码保存在变量中以供while控制器检查) 计数器(用于跟踪重试计数) JSR223断言(将结果设置为成功,这样第一次失败的重试不算在内) HTTP

我有一个JMeter脚本,它向5个不同的端点发出请求。如果出现错误,则应停止该线程

但是,我想在停止线程之前重试对第三个端点的请求3次

以下是我的脚本的外观:

  • 线程组(选择了停止线程时)
    • HTTP请求(第一个端点)
    • HTTP请求(第二个端点)
    • 事务控制器
      • While控制器
        • HTTP请求(第三个端点)
          • JSR223后处理器(将响应代码保存在变量中以供while控制器检查)
        • 计数器(用于跟踪重试计数)
      • JSR223断言(将结果设置为成功,这样第一次失败的重试不算在内)
    • HTTP请求(第四个端点)
    • HTTP请求(第5个端点)
由于我选中了thread Group(线程组)下的选项Stop thread,因此如果对第三个端点的第一个请求失败,线程将停止,并且不会重试

如果选中“继续”,则对第三个端点的重试将按预期进行,但如果对其他端点的请求失败,线程不会停止

我还尝试将以下Groovy脚本添加到JSR223后处理器,但没有成功:

if (prev.isStopThread()) {
    prev.setStopThread(false)
}
如果能得到任何帮助,我将不胜感激

谢谢大家!

只需在中将“采样器错误后要采取的操作”设置为
Continue
,以防止线程停止

如果决定停止线程,可以通过以下两种方式执行:

  • Via(与制造商一起)

  • 通过任何JSR223测试元素

    prev.setStopThread(true)
    

  • 您甚至不需要计数器,因为While Controller通过
    \uuuujm\uuuuuu While Controller\uuuu idx
    预定义变量公开当前迭代,所以我应该在每次请求后执行此操作(第三个请求除外),对吗?