当任何预处理器执行失败时,有没有办法中止处理采样器(HTTP 请求)?
场景:
我曾尝试在 JSR223 预处理器的 try-catch 块中执行以下操作。
try {
//JSON playload creating script
}catch(anything){
ctx.setRestartNextLoop(true);
}
这不会中止当前采样器的执行。 在采样器之外处理 JSON 负载可能不是一个优雅的解决方案。
答案 0 :(得分:2)
正确的函数是:
ctx.setTestLogicalAction(org.apache.jmeter.threads.JMeterContext.TestLogicalAction.START_NEXT_ITERATION_OF_CURRENT_LOOP)
但是它不会阻止当前采样器的执行,它不会运行下一个采样器,因此在上一个请求的 JSR223 PostProcessor 中生成请求正文是有意义的< /p>
一个更易读、更容易被同事理解的解决方案是在 JSR223 Sampler 中生成正文并通过 If Controller 有条件地运行 HTTP 请求采样器