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

时间:2016-12-15 09:56:48

标签: jmeter automated-tests

JMeter中是否有机制/解决方法从测试中重新运行任何失败的步骤而无需重新运行整个线程/测试?

我已经看到了If控制器的使用,但这需要If控制器在任何步骤和重复。

2 个答案:

答案 0 :(得分:1)

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

if (!SampleResult.isSuccessful()) {
    SampleResult = ctx.getCurrentSampler().sample(null);
}

上面的代码将再次重新执行失败的采样器。说明:

  • SampleResult - SampleResult类的实例,提供对当前采样器结果的读/写访问权
  • ctx - JMeterContext
  • 的简写

有关可用方法和字段,请参阅上面的JavaDoc类;有关JMeter中Beanshell脚本的更多信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component指南。

答案 1 :(得分:1)

没有干净的机制来做你想做的事。

Dmitri显示的代码是一个黑客,可能会在不同的领域产生影响:

  • 断言是为了检查响应是否不采取行动,以便让自己暴露于未来的问题

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

  • 您并未真正模拟应用程序的负载,并且可能会在应用程序中引入问题