JMeter - 错误后停止线程,但允许重试
JMeter - Stop thread after error, but allow retries
我有一个 JMeter 脚本,它向 5 个不同的端点发出请求。如果有错误,该线程应该停止。
但是,我想在停止线程之前重试 3 次对第三个端点的请求。
我的脚本如下所示:
- 线程组(选择了停止线程)
- HTTP 请求(第一个端点)
- HTTP 请求(第二个端点)
- 事务控制器
- 当控制器
- HTTP 请求(第三个端点)
- JSR223 后处理器(将响应代码保存在变量中供 while 控制器检查)
- 计数器(跟踪重试次数)
- JSR223断言(将结果设置为成功,因此第一次失败的重试不算)
- HTTP 请求(第 4 个端点)
- HTTP 请求(第 5 个端点)
由于我选中了线程组下的选项停止线程,如果对第三个端点的第一个请求失败,线程将停止并且不会重试。
如果我选中 Continue,那么对第三个端点的重试会按预期工作,但如果对其他端点的请求失败,线程不会停止。
我还尝试将以下 Groovy 脚本添加到 JSR223 后处理器,但没有成功:
if (prev.isStopThread()) {
prev.setStopThread(false)
}
如果能得到任何帮助,我将不胜感激。
谢谢!
只需在 Thread Group 中将“采样器错误后要采取的操作”设置为 Continue
,以防止线程停止。
如果您决定停止线程,您可以通过两种方式进行:
通过Flow Control Action Sampler (in conjunction with the If Controller)
通过您的任何 JSR223 测试元素作为
prev.setStopThread(true)
您甚至不需要计数器,因为 JMeter 5.0 而控制器通过 __jm__While Controller__idx
预定义变量
公开当前迭代
我有一个 JMeter 脚本,它向 5 个不同的端点发出请求。如果有错误,该线程应该停止。
但是,我想在停止线程之前重试 3 次对第三个端点的请求。
我的脚本如下所示:
- 线程组(选择了停止线程)
- HTTP 请求(第一个端点)
- HTTP 请求(第二个端点)
- 事务控制器
- 当控制器
- HTTP 请求(第三个端点)
- JSR223 后处理器(将响应代码保存在变量中供 while 控制器检查)
- 计数器(跟踪重试次数)
- HTTP 请求(第三个端点)
- JSR223断言(将结果设置为成功,因此第一次失败的重试不算)
- 当控制器
- HTTP 请求(第 4 个端点)
- HTTP 请求(第 5 个端点)
由于我选中了线程组下的选项停止线程,如果对第三个端点的第一个请求失败,线程将停止并且不会重试。
如果我选中 Continue,那么对第三个端点的重试会按预期工作,但如果对其他端点的请求失败,线程不会停止。
我还尝试将以下 Groovy 脚本添加到 JSR223 后处理器,但没有成功:
if (prev.isStopThread()) {
prev.setStopThread(false)
}
如果能得到任何帮助,我将不胜感激。
谢谢!
只需在 Thread Group 中将“采样器错误后要采取的操作”设置为 Continue
,以防止线程停止。
如果您决定停止线程,您可以通过两种方式进行:
通过Flow Control Action Sampler (in conjunction with the If Controller)
通过您的任何 JSR223 测试元素作为
prev.setStopThread(true)
您甚至不需要计数器,因为 JMeter 5.0 而控制器通过 __jm__While Controller__idx
预定义变量