我试图在45秒后停止while循环。此while循环在5秒间隔内有JDBC请求。 我不希望while循环永远运行。
现在我正在使用这种条件:
${__javaScript("${order_status_cd_1}" != "3" && "${TESTSTART.MS}" < "6",)}
但是它不起作用。
答案 0 :(得分:0)
在while循环之前将Beanshell Sampler添加到脚本中并设置TestStopTime
。
您只需要使用TESTSTART.MS
变量获取teststart时间,并向其添加45000毫秒即可在45秒后停止,如下所示。
您可以使用$ __ time()函数获取当前时间戳,可以使用此函数进行比较
while循环中的条件是[IF(currentTime<=TeststopTime)]
${__javaScript(( ${__time(,)} <=${TestStopTime}), )}
您可以在结果测试中看到完全在45秒后停止(在屏幕截图中突出显示)
有关while循环的更多信息,请read this article
答案 1 :(得分:0)
Rohit 答案的简单版本。
vars.put("LOOPSTART", System.currentTimeMillis().toString());
${__javaScript((${__time()} - ${LOOPSTART}) <= 45000 )}
注意:${__time()} 不能在 BeanShell Sampler 中使用。 https://stackoverflow.com/a/55275878/12895553
答案 2 :(得分:-1)
在While控制器下添加一个Counter测试元素,并按以下方式进行配置:
1
counter
将While控制器的条件修改为
${__javaScript("${order_status_cd_1}" != "3" && ${counter} < 8,)}
这样,您的JDBC请求将被执行不超过9次,假设请求之间的持续时间为5秒,而Controller的总持续时间为45秒(加上运行请求本身的时间)
请注意: