jmeter集合点使用方法:Synchronizing Timer
LR中集合点可以设置多个虚拟用户等待到一个点,同时触发一个事务,以达到模拟真实环境下多个用户同时操作,实现性能测试的最终目的。
jmeter中使用Synchronizing Timer实现Lr中集合点的功能,模拟多用户并发测试,即多个线程在同一时刻并发请求。
jmeter中使用集合点的方法:Synchronizing Timer
将测试元件Synchronizing Timer添加到请求之前或某个Sampler的子节点,右键菜单依次选择“添加–>定时器/Timer–>Synchronizing Timer”
Number of Simulated users to Group by: 集合点集合够N个用户开始并发
1、增加几个调试sample
2、增加定时器
3、配置定时器
4、运行结果,发送请求都是100的执行,很集中的执行
6、将定时器关闭运行,发现请求都是零零散散的。
7、移动到其他位置执行,发现只要在该线程组下,都是作用于该线程组下所有请求线程。如下图
8、移动到子节点下面是什么情况呢,从下面的数据发现是作用于该父类节点的sampler
下面是网上找来的说明:
注:
1.把SynchronizingTimer放置于请求之前,通常Jmeter按树状结构顺序执行
2.说明:
名称:自定义名称
Number of Simulated Users to Groupby:每次释放的线程数量。如果设置为0,等同于设置为线程租中的线程数量。
Timeout in milliseconds:
如果设置为0,Timer将会等待线程数达到了"Number of Simultaneous Users toGroup"中设置的值才释放。如果大于0,那么如果超过Timeout inmilliseconds中设置的最大等待时间(毫秒为单位)后还没达到"Number of Simultaneous Users toGroup"中设置的值,Timer将不再等待,释放已到达的线程。默认为0
【注意】:
如果设置Timeout in milliseconds为0,且线程数量无法达到"Number of Simultaneous Users toGroup by"中设置的值,那么Test将无限等待,除非手动终止。
Synchronizing timer 仅作用于同一个JVM中的线程,所以,如果使用并发测试,确保"Number of Simultaneous Users toGroup by"中设置的值不大于它所在线程组包含的用户数。
(原文:Synchronizing timer blocks only within one JVM, soif using Distributed testing ensure you never set "Number ofSimultaneous Users to Group by" to a value superior to the numberof users of its containing Thread group considering 1 injectoronly)
2、如上,添加相关请求,结果树等,进行必要设置后,运行查看效果
通过结果树可以看到,请求是批量执行的