Jmeter 使一些失败的请求停止线程,允许其他请求继续的最佳实践

Jmeter 使一些失败的请求停止线程,允许其他请求继续的最佳实践,jmeter,Jmeter,我认为这是一个常见的场景,虽然我相信我有一个可行的解决方案,但感觉可能有更好的方法 问题是,我需要比在采样器错误行为之后执行的线程组级别的操作更精细的粒度。我的一些采样器表示请求,这些请求会阻止在出现故障时进一步执行工作流。在这些情况下,我希望线程继续进行下一个迭代循环,从头开始,而不是像实际用户那样快速地执行后续请求,而这些请求无论如何都会失败。其他采样器表示即使某些采样器失败也会继续发出的请求。在这种情况下,我希望线程继续运行 我现在使用的方法虽然笨重但似乎有效,如下所示:在线程组级别,我已

我认为这是一个常见的场景,虽然我相信我有一个可行的解决方案,但感觉可能有更好的方法

问题是,我需要比在采样器错误行为之后执行的
线程组
级别的
操作更精细的粒度。我的一些采样器表示请求,这些请求会阻止在出现故障时进一步执行工作流。在这些情况下,我希望线程继续进行下一个迭代循环,从头开始,而不是像实际用户那样快速地执行后续请求,而这些请求无论如何都会失败。其他采样器表示即使某些采样器失败也会继续发出的请求。在这种情况下,我希望线程继续运行

我现在使用的方法虽然笨重但似乎有效,如下所示:在
线程组
级别,我已将采样器错误
后要采取的
操作设置为
继续
。我假设这意味着默认情况下,如果采样器失败,线程将继续执行下一条指令,直到到达末尾

这会导致请求在出现故障时阻止/停止/重新启动工作流。我找到的解决方案是使用
If控制器遵循这些
关键操作

条件
${JMeterThread.last_sample_ok}
如果上一个示例失败,则应解析为
true
。在
If控制器
中,我有一个
测试动作
来停止执行并开始线程的下一个循环迭代:

我假设
转到下一个循环迭代
意味着重新开始线程,假设线程组设置了循环计数

此设置似乎有效,因为每次采样器失败时,线程都会从树的顶部重新开始,然后是此
If
/
操作组合。未跟随此块的采样器不会在失败时停止执行


这个设置看起来也很笨重,很烦人,因为我正在到处复制粘贴这个失败条件。有没有一种更优雅的方式来获得这种行为,或者我有没有找到一种或多或少正确的方式来做到这一点?谢谢

除了您所说的复制/粘贴之外,您的解决方案很好,因此解决方案是使用:

  • 将包含您的IfController:

  • 我将指出: