如何根据响应代码处理jmeter中的延迟

How to handle delay in jmeter based on response code

我的要求是,每当 Jmeter 执行出现错误时,在开始下一次迭代之前应该有一个延迟。

"Start Next Thread Loop" 在 Thread Group 级别选择用于 Sampler 错误。因此,如果在执行过程中出现任何错误,Jmeter 将启动一个新的迭代。

为此,我在迭代开始时使用了 Beanshell 计时器。如果响应代码不是“200”

,则添加以下代码用于延迟
String code = prev.getResponseCode();
if(code!="200"){
log.info("::::::::::::::::::::::::::::Response Code = "+code);
log.info("sleep for 10sec");
 return 10000;
}
else
 return 0;

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

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

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

您可以使用:

${__jexl2("${JMeterThread.last_sample_ok}" == "false",)}

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