为何设置了Synchronizing Timer在本地生效,在PTS中不生效?

问题现象

在JMeter中设置了Synchronizing Timer且在本地生效,但是在PTS中运行时不生效。

可能原因

Synchronizing Timer只在单台施压机(JVM)内生效。使用PTS压测时,可能自动分配多台施压机,因此不生效。PTS现已支持JMeter分布式适配设置,可选择脚本中的设置值是全局生效或单机生效。详情请参见设置同步定时器

使用Synchronizing Timer时请注意以下几点:

  • Number of Simultaneous Users to Group by数值不能超过单机并发数,否则不能满足条件,建议设置为0,即自动取单机最大并发数。
  • 合理设置超时时间Timeout in milliseconds:超时时间设置是指如果达到某个时间,即使没有达到指定的并发集合量,也同时释放这些并发。

    例如您需要集合2000个并发,并同时释放,来模拟秒杀这样的场景,同时设置的超时时间为5000。而在您的实际压测中,此时间内只集合到了1500个并发,那么在超时后系统也会继续执行来释放掉这些并发,不会无限期的等待下去。