JMeter-重新运行失败的步骤,而不重新运行整个测试

JMeter-重新运行失败的步骤,而不重新运行整个测试,jmeter,automated-tests,Jmeter,Automated Tests,JMeter中是否有一种机制/解决方法可以在不必重新运行整个线程/测试的情况下从测试中重新运行任何失败的步骤 我见过If控制器的用法,但这需要在任何步骤使用If控制器并复制。可以使用和以下参考代码: if (!SampleResult.isSuccessful()) { SampleResult = ctx.getCurrentSampler().sample(null); } 上述代码将再次执行失败的采样器。说明: SampleResult-类的实例,提供对当前采样器结果的读/写访

JMeter中是否有一种机制/解决方法可以在不必重新运行整个线程/测试的情况下从测试中重新运行任何失败的步骤

我见过If控制器的用法,但这需要在任何步骤使用If控制器并复制。

可以使用和以下参考代码:

if (!SampleResult.isSuccessful()) {
    SampleResult = ctx.getCurrentSampler().sample(null);
}
上述代码将再次执行失败的采样器。说明:

  • SampleResult
    -类的实例,提供对当前采样器结果的读/写访问
  • ctx
    -课堂速记

有关可用的方法和字段,请参阅上面的类JavaDoc,有关JMeter中Beanshell脚本的更多信息,请参阅指南。

没有干净的机制来完成您想要的任务

Dmitri显示的代码是一种黑客行为,可能在不同领域产生后果:

  • 断言用于检查响应是否不执行某个操作,从而使自己暴露在未来的问题中

  • 重新运行请求是不现实的,应该限制在可行的地方。例如,POST通常会修改服务器状态,而您不能重播它们

  • 您并不是真正在模拟应用程序的负载,这样做可能会在应用程序中引入问题