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



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

我正在运行的测试是数据驱动的,应该可以在不同的时间长度内运行。为了指定测试的运行时,我一直使用线程组调度程序上的"Duration"选项。

如果测试运行超过了它的持续时间,我注意到当这些计时器片段在使用时,测试被延迟,直到事务(或至少计时器)完成后才能结束。记录的其他时间和采样器似乎不受影响,但是测试的运行时间受到影响。

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

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

但是,一个名为'Test Action'的元素可以用于在运行时暂停/停止/立即停止测试中的操作,并且该元素可以在'If Controller'元素下使用,以便您可以在该元素中设置条件以停止线程。

尽管JMeter提供了各种正面元素来处理不同的条件,但在现有元素不能直接解决问题的罕见情况下,任何软件测试公司的JMeter专家都会使用具有父子层次结构的多个元素来处理条件[正如上面使用Test Action &

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

我不认为有一种方法来设置持续时间使用shutdown而不是stop。您可以尝试使用多个较小的计时器,看看它是否仍然等待所有计时器。

最新更新