如何在预处理器执行失败时中止处理采样器?
How to abort processing a sampler when a pre-processor execution is failed?
有没有办法在任何预处理器执行失败时中止处理采样器(HTTP 请求)?
场景:
- 有一个与 HTTP 请求关联的 JSR223 预处理器
- JSON 有效载荷(请求主体)在 JSR223 预处理器中动态创建。
- JSON 负载在某些时候没有成功创建。
- 当 JSON 负载未成功创建时,不应发送 HTTP 请求。
我已经尝试在 JSR223 预处理器的 try-catch 块中进行跟踪。
try {
//JSON playload creating script
}catch(anything){
ctx.setRestartNextLoop(true);
}
这不会中止当前采样器的执行。
在采样器外部处理 JSON 有效载荷可能不是一个优雅的解决方案。
正确的函数是:
ctx.setTestLogicalAction(org.apache.jmeter.threads.JMeterContext.TestLogicalAction.START_NEXT_ITERATION_OF_CURRENT_LOOP)
但是它不会阻止当前采样器的执行,它不会运行下一个采样器所以在[中生成请求正文是有意义的=11=] 上一个请求
您的同事更容易理解的更具可读性的解决方案是在 JSR223 Sampler and conditionally running the HTTP Request sampler via If Controller
中生成正文
有没有办法在任何预处理器执行失败时中止处理采样器(HTTP 请求)?
场景:
- 有一个与 HTTP 请求关联的 JSR223 预处理器
- JSON 有效载荷(请求主体)在 JSR223 预处理器中动态创建。
- JSON 负载在某些时候没有成功创建。
- 当 JSON 负载未成功创建时,不应发送 HTTP 请求。
我已经尝试在 JSR223 预处理器的 try-catch 块中进行跟踪。
try {
//JSON playload creating script
}catch(anything){
ctx.setRestartNextLoop(true);
}
这不会中止当前采样器的执行。 在采样器外部处理 JSON 有效载荷可能不是一个优雅的解决方案。
正确的函数是:
ctx.setTestLogicalAction(org.apache.jmeter.threads.JMeterContext.TestLogicalAction.START_NEXT_ITERATION_OF_CURRENT_LOOP)
但是它不会阻止当前采样器的执行,它不会运行下一个采样器所以在[中生成请求正文是有意义的=11=] 上一个请求
您的同事更容易理解的更具可读性的解决方案是在 JSR223 Sampler and conditionally running the HTTP Request sampler via If Controller
中生成正文