我遇到以下问题:
我的测试计划中有多个HTTP请求。 如果失败,我希望每个请求重复4次。 我意识到使用BeanShell Assertion,它已经正常工作了。 我的问题是,如果先前的请求失败5次,我不想要执行请求, 但我也不想让线程结束。
我只想让当前的线程迭代结束, 这样线程的下一次迭代可以用第一个请求重新开始(如果要重复该线程)。
如何在BeanShell断言中实现? 这里只是我的代码的简短摘录,我想要解决方案
对于请求的每次失败尝试, badResponseCounter
都在增加,这似乎到目前为止工作。之后,变量将被重置。
if (badResponseCounter = 5) {
badResponseCounter = 0;
// Stop current iteration
}
我已经检查了API,给出了setStopTest()或setStopThread()等方法,但没有用于退出当前迭代。我也需要偏好"继续"在线程组中,否则整个测试将在1个单个请求失败后停止。 有关如何做到这一点的任何想法?
答案 0 :(得分:2)
试试这个。
ctx.setRestartNextLoop(true);
如果线程数是2,我试图跳过。我得到了如我所料的以下结果(它不会调用b-2)。它也没有杀死线程。
答案 1 :(得分:2)
在我看来,最简单的方法是使用以下组合:
${JMeterThread.last_sample_ok}
和badResponseCounter
变量