如何配置Synchronizing Timer实现多组Sampler同时执行?
JMeter实现多组Sampler全局并发的解决方案
核心问题拆解
你之前的配置问题出在同步分组数的计算和作用范围上:
- 全局同步定时器设为100时,JMeter会每凑齐100个线程就放行,所以10组的线程会分批触发(每组100个先执行),没法实现全局同时启动
- 把同步定时器移到组内,每组内部的100线程会同步,但线程组的启动顺序、ramp-up时间等因素会导致各组的同步点触发时间错开,反而达不到全局并发的效果
正确配置方案
用全局Synchronizing Timer(直接放在测试计划根节点下,确保所有线程组的线程都能触发到),参数设置如下:
- Number of Simultaneous Users to Group by:设置为
1000(10组×100线程=1000个线程,只有凑齐所有1000个线程,才会一起放行执行) - Timeout in milliseconds:设置为
30000(30秒,根据你的机器性能调整,确保所有线程有足够时间到达同步点,避免因超时提前放行)
配套调整
- 所有线程组的Ramp-Up Period设为
0(或1毫秒),让所有线程瞬间启动,快速到达同步点 - 保持每组的循环次数为2,同步定时器会在每次循环时都生效,两次循环都会触发全局同步
额外注意事项
- 确保你的机器能支撑1000线程同时运行,否则可能出现线程启动缓慢、超时等问题,必要时可以分批调整并发数或升级硬件
- 如果循环执行时需要每次都同步,当前配置即可;若只需要第一次循环同步,可以添加If Controller配合同步定时器,判断循环次数是否为1
内容的提问来源于stack exchange,提问作者JackTheKnife
相关产品推荐
相关产品推荐

