是否可以在JMeter中开始下一次迭代之前等待所有线程完成

时间:2017-02-14 10:44:40

标签: jmeter

我想等待所有线程,直到每个线程在线程组中完成其任务并再次同时开始所有线程的新迭代。

即。对于每次迭代,我想确保在最后一次迭代中完成所有线程。

请提供您的要求。

1 个答案:

答案 0 :(得分:1)

您可以使用Synchronizing Timer来实现它。将它作为a child of the last Sampler放在脚本中,这样所有线程都会等待其他线程到达最后一步。

Number of Simultaneous Users to Group by设置为0,计时器将等待number of threads中配置的current Thread Group

警告:这将导致服务器突然加载(Spike),因为所有线程同时启动最后一步。

来自JMeter Docs:

  

请注意,计时器在范围内的每个采样器之前处理   他们被发现;如果同一范围内有多个计时器,   所有计时器将在每个采样器之前处理。定时器只是   与采样器一起处理。一个不在的计时器   与采样器相同的范围根本不会被处理。

     

要将计时器应用于单个采样器,请将计时器添加为计时器的子元素   采样器。计时器将在执行采样器之前应用。至   在采样器之后应用计时器,将其添加到下一个采样器,或者   将其添加为Test Action Sampler的子项。

因此,尝试将同步计时器保持为Test Action采样器的孩子添加Debug Sampler并在孩童时添加Synchronizing Timer,以避免警告中提到的不需要的峰值。

参考文献:

  1. http://jmeter.apache.org/usermanual/component_reference.html#Synchronizing_Timer
  2. https://www.blazemeter.com/blog/using-jmeter-synchronizing-timer