Jmeter之集合点功能的使用-同步并发

举例:要测试100个用户同时登录,没到输入用户名和密码登录的地方,所有的虚拟用户都相互等待,等100个用户都输入完毕,相当于集结在一起了,然后一起访问。
1、集合点的介绍
(1)集合点含义
集合点简单理解为一种控制虚拟用户行为的机制,这个机制可以达到的效果是:在一定时间范围内,将一定数量的虚拟用户,阻挡在一个操作行为点前的位置,进行相互等待。在条件(达到虚拟用户数量或超时)到达后,唤醒全部等待中的虚拟用户。从而达到,使一定数量的虚拟用户,可以同时进入到下一个操作行为点的目的。
(2)集合点的作用
让所有请求在不满足条件的时候处于等待状态,等待满足条件后,再同时一起发起请求。也就是模拟让所有用户,恰好在同一时刻执行任务,进行同步并发。常用在并发测试或压力测试中。

在实际工作中,往往初衷是为了实现最大意义上的并发,来考察系统应对此种极端情况的表现。
常见应用场景:秒杀
实现集合点的组件为同步定时器
2、同步定时器
Synchronizing Timer组件翻译过来就是同步定时器。
添加同步定时器的方法参考图示:选中-取样器-右键-添加-定时器-Synchronizing Timer


image.png

(1)模拟用户组的数量:一次集合多少用户后再执行请求。也就是设置模拟并发请求的线程数。
1)如果设置为0,默认等于线程组元件中设置的线程数。
(2)超时时间以毫秒为单位:集合这些用户所花费的时间。
1)设置为0,无限等待,直到达到集合点设置的线程数。
2)设置指定时长,如果到达指定时长,集合点数量未到达,这是该集合中有多少用户数就释放多少用户数量。
提示:
如果超时时间设置为0,且线程数量无法达到模拟用户组的数量设置的值,那么测试将无限等待,除非手动终止。(可能会导致程序挂起)
同步定时器组件仅作用于同一个线程组,所以如果使用并发测试,确保模拟用户组的数量中设置的值不大于它所在线程组设定的用户数。(集合数最好能被线程组中设置的线程数整除)
集合时间最好大于等于线程组中的启动时间。当集合线程数不能被线程组中的线程数整除时,集合时间不要设置为0。
作用域:当执行一个sampler之前时,和sampler处于相同作用域的定时器都会被执行。如果希望定时器应用于其中一个sampler,则把定时器作为子节点加入。
实例测试:50个用户同时登录,使用csv参数化用户账号
(1)测试计划-线程组
设置线程组50,启动时间1s,循环次数1


image.png

(2)新增同步定时器,设置模拟用户组的数量0,超时时间3s
image.png

(3)添加http请求,CSV数据文件
(4)启动线程组,结果数查看,50个登录请求同时发出成功
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容