当任何预处理器执行失败时,是否有方法中止处理采样器(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)
但是它不会阻止当前采样器的执行,它不会运行下一个采样器所以在前一个请求的JSR223 PostProcessor中生成请求体是有意义的
一个更容易理解的解决方案是在JSR223采样器中生成主体,并通过If控制器有条件地运行HTTP请求采样器