在JMeter中有条件地重新启动用户线程

在JMeter中有条件地重新启动用户线程,jmeter,Jmeter,我知道我可以在JMeter中有条件地停止线程 在我的脚本中,我发送一个请求,然后提取它们的响应json以进一步处理它。在一些罕见的情况下,参数响应提供了一些我无法在后续步骤中处理的值 我实际上可以通过提取另一个参数来检测这个有效的响应。是否可以根据条件重新启动线程,而不是停止它?供进一步研究人员参考: 根据条件(即从json中提取一些数据)启动线程的另一次迭代的简单方法是以上述方式使用BeanShell采样器 import org.apache.jmeter.samplers.Sampl

我知道我可以在JMeter中有条件地停止线程

在我的脚本中,我发送一个请求,然后提取它们的响应json以进一步处理它。在一些罕见的情况下,参数响应提供了一些我无法在后续步骤中处理的值


我实际上可以通过提取另一个参数来检测这个有效的响应。是否可以根据条件重新启动线程,而不是停止它?

供进一步研究人员参考:

根据条件(即从json中提取一些数据)启动线程的另一次迭代的简单方法是以上述方式使用BeanShell采样器

    import org.apache.jmeter.samplers.SampleResult;
    import org.apache.jmeter.threads.JMeterContext;
    import org.apache.jmeter.threads.JMeterContext.TestLogicalAction;


    String statVar = vars.get("statusVariable");    //getting some data for condition check (statusVariable is a variable that has been set previously in the Jmeter JSON Extractor)

    if(statVar.equals("NOK")){ .                   //checking the condition

    SampleResult.setTestLogicalAction(TestLogicalAction.START_NEXT_ITERATION_OF_THRE 
            AD);                                  //Starting thread again (it starts the thread from the beginning, so we may compare this to restart effect)
}

没有脚本,您可以添加(was:测试操作)

选择目标:
当前线程
和操作:
启动下一个线程循环


它将跳过“损坏”的线程并继续下一个线程

即使您可以,您可能会得到无限循环,为什么需要重新启动?我正在上载下一个将被转换的文件,然后我只是等待下一个上载请求,直到上一个文件被转换(为了不将转换进程堆叠到队列)。获取错误响应并传递其值进一步导致错误数据被提取到下一个请求中,从而导致脚本循环。无论如何,我已经设法重新启动了脚本,但是,我将发布此类工作的解决方案,因此它可能对某些人有用。下一次迭代不等于重新启动你是对的,它更像是移动到另一次迭代,跳过当前线程。我想使用JSR223 groovy中的代码,但令我惊讶的是,我无法在那里工作。你有完整的groovy代码吗?