一、什么是集合点?
假设我们要模拟压测一个秒杀的场景:10点整抢购并发1w个优惠卷抢购请求。注意,这里是10点整1w个并发,这就是一个集合点
集合点:就是让所有请求在不满足条件的时候处于等待状态,满足条件时同时触发
二、Jmeter中的集合点:Synchronizing Timer
1.操作步骤:Add->Timer->Synchronizing Timer
image.png
2.参数分析:
- Number of Simulated Users to Group by:每次释放的线程数量。如果设置为0,等同于设置为线程租中的线程数量
- Timeout in milliseconds:
如果设置为0,Timer将会等待线程数达到了"Number of Simultaneous Users to Group"中设置的值才释放。如果大于0,那么如果超过Timeout in milliseconds中设置的最大等待时间(毫秒为单位)后还没达到"Number of Simultaneous Users to Group"中设置的值,Timer将不再等待,释放已到达的线程。默认为0
注意:
(1)如果Number of Simulated Users to Group by 大于线程数,那么集合点这里的请求会一直等待直至超时或者无限制的等待,从而导致超时或不执行集合点对应的请求;
如果Number of Simulated Users to Group by(n) <线程数,那么集合点这里的请求每凑够n个并发就会触发集合点的请求;
(2)作用域的问题:集合点放在特定sampler里面,则对该特定sampler起作用;
若集合点放在线程组里面,则对整个线程组起作用
三、案例实战:注册登录后,并发请求用户信息
1.设置线程数:3个。3s内启动3个线程
image.png
2.编写注册-登录-用户信息请求:
image.png
3.设置集合点,默认Number of Simulated Users to Group by =0,Timeout in milliseconds=0
4.运行,可以发现:
image.png线程1-1、1-2、1-3是同一个时间点内一起发送的请求
image.png
image.png
如果不设置集合点,会发现:
请求按顺序发送:
image.png
网友评论