Timer 如何基于响应代码处理jmeter中的延迟

Timer 如何基于响应代码处理jmeter中的延迟,timer,jmeter,beanshell,Timer,Jmeter,Beanshell,我的要求是,无论何时Jmeter执行中出现错误,在开始下一次迭代之前都应该有一个延迟 对于采样器错误,在线程组级别选择“启动下一个线程循环”。因此,如果在执行过程中出现任何错误,Jmeter将启动新的迭代 为此,我在迭代开始时使用了Beanshell计时器。如果响应代码不是“200”,则添加以下延迟代码 如果有更好的方法,请告诉我 我相信prev.getResponseCode()还可以用于执行任何类型的清理任务,以防出现任何错误 例如,如果用户登录到应用程序并在注销前出错。我们可以在迭代开始时

我的要求是,无论何时Jmeter执行中出现错误,在开始下一次迭代之前都应该有一个延迟

对于采样器错误,在线程组级别选择“启动下一个线程循环”。因此,如果在执行过程中出现任何错误,Jmeter将启动新的迭代

为此,我在迭代开始时使用了Beanshell计时器。如果响应代码不是“200”,则添加以下延迟代码

如果有更好的方法,请告诉我

我相信prev.getResponseCode()还可以用于执行任何类型的清理任务,以防出现任何错误

例如,如果用户登录到应用程序并在注销前出错。我们可以在迭代开始时测试前一个响应代码是否有错误,如果有错误,我们可以让用户注销应用程序。

您可以使用:

  • 这将检查最后一个响应是否出错或未使用
${uuuujexl2(${JMeterThread.last_sample_uOK}“==”false“,)}

  • 这将用于启动下一个线程循环

测试计划应具有以下布局:


您的解决方案是正确的。我已经用一些示例脚本测试了相同的功能。我也对你的解决方案投了赞成票。问题是,我想保持它的开放性,以防任何人有任何其他的解决方案。我还有一个关于脚本开头错误处理的问题。根据我的要求,如果脚本执行中有任何错误,下一次迭代应该注销用户并在继续正常执行之前随机休眠一段时间。如果我们在每次迭代开始时清除缓存会发生什么?您好,您应该打开另一个问题,进一步澄清您的需求。关于答案的接受,通常在几天后,你不应该得到更多的答案,但如果给出更好的答案,你总是有可能不接受
String code = prev.getResponseCode();
if(code!="200"){
log.info("::::::::::::::::::::::::::::Response Code = "+code);
log.info("sleep for 10sec");
 return 10000;
}
else
 return 0;