jmeter停止当前迭代

时间:2014-06-13 14:23:59

标签: iteration jmeter beanshell

我遇到以下问题:

我的测试计划中有多个HTTP请求。 如果失败,我希望每个请求重复4次。 我意识到使用BeanShell Assertion,它已经正常工作了。 我的问题是,如果先前的请求失败5次,我不想要执行请求, 但我也不想让线程结束。

我只想让当前的线程迭代结束, 这样线程的下一次迭代可以用第一个请求重新开始(如果要重复该线程)。

如何在BeanShell断言中实现? 这里只是我的代码的简短摘录,我想要解决方案

对于请求的每次失败尝试,

badResponseCounter都在增加,这似乎到目前为止工作。之后,变量将被重置。

if (badResponseCounter = 5) {
        badResponseCounter = 0;
     // Stop current iteration
    }

我已经检查了API,给出了setStopTest()或setStopThread()等方法,但没有用于退出当前迭代。我也需要偏好"继续"在线程组中,否则整个测试将在1个单个请求失败后停止。 有关如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:2)

试试这个。

ctx.setRestartNextLoop(true);

如果线程数是2,我试图跳过。我得到了如我所料的以下结果(它不会调用b-2)。它也没有杀死线程。

enter image description here

答案 1 :(得分:2)

在我看来,最简单的方法是使用以下组合:

  1. If Controller检查${JMeterThread.last_sample_ok}badResponseCounter变量
  2. Test Action采样器作为If控制器配置为“转到下一循环迭代”的子项