【问题标题】:Is it possible to wait all the threads to finish before starting next iteration in JMeter在JMeter中开始下一次迭代之前是否可以等待所有线程完成
【发布时间】:2017-02-14 10:44:40
【问题描述】:

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

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

请根据我的要求提供您的意见。

【问题讨论】:

    标签: jmeter


    【解决方案1】:

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

    设置Number of Simultaneous Users to Group by0,定时器会等待current Thread Group中配置的number of threads

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

    来自 JMeter 文档:

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

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

    因此,尝试将 Synchronizing Timer 保留为 Test Action sampler 的子代 添加 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

    【讨论】:

    • 谢谢@Naveen。这是非常有用的。我会试试这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 2020-04-08
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多