JMeter - 当测试达到持续时间时强制所有事务/线程停止

时间:2016-09-14 16:02:14

标签: java multithreading jmeter

我有一个自定义控制器类型,它运行它自己的特定测试片段。需要注意的重要一点是,这些片段包含事务控制器,其中包含模拟等待时间长达5分钟的高斯定时器。

我正在运行的测试是数据驱动的,应该可以运行不同的时间长度。要指定测试的运行时,我一直在使用线程组调度程序上的“持续时间”选项。

如果测试已超出其持续时间,我注意到当这些计时器片段正在使用时,测试会延迟并且在事务(或至少是计时器)完成之前无法结束。记录的其他时间和采样器似乎不受影响,但测试的运行时间受到影响。

我想解决这个问题,而不必依赖用户在达到持续时间时手动终止测试。 JMeter中是否有任何选项可以在达到持续时间时终止或中断任何类型的正在运行的线程?

2 个答案:

答案 0 :(得分:2)

根据我对Jmeter的理解,没有任何元素可以阻止运行测试达到特定的持续时间。

但是,名为“Test Action”的元素可以在运行时用于暂停/停止/停止测试,并且可以在“If Controller”元素下使用此元素,以便您可以在此设置条件要停止线程的元素。

尽管JMeter提供了各种正面元素来处理不同的条件,但在极少数情况下,现有元素无法直接解决问题,那么任何软件测试公司的JMeter专家都会使用具有子父级层次结构的多个元素来处理这种情况[如上所述,测试行动&如果是Controller元素]

答案 1 :(得分:1)

我认为这与stop test vs shutdown有关。当测试达到其持续时间时,它将发出stop test,此时任何计时器都将完成,请求将发生,然后线程停止。这就是为什么手动关闭它的原因 - shutdown 尊重计时器等。

我认为没有办法设置使用shutdown而不是stop的持续时间。你可能尝试的一件事是多个较小的计时器,看看它是否还在等待所有这些计时器。