jmeter压测学习29-定时器之同步定时器Synchronizing Timer(设置集合点)
前言
LoadRunner 中可以设置一个集合点,设置多个虚拟用户等待到一个时间点,到齐后一起发请求达到并发的目的。
集合点概念:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力
jmeter 中使用同步定时器 Synchronizing Timer实现 LoadRunner 中集合点的功能,模拟多用户并发测试,即多个线程在同一时刻并发请求。
同步定时器 Synchronizing Timer
在HTTP请求的样本下添加-定时器-同步定时器
有2个参数设置
- 模拟用户组的数量(Number of Simulated Users to Group by) 也就是并发数,集合多少请求后一起发出去
- 超时时间以毫秒为单位(Timeout in milliseconds) 指定人数多少秒没集合到算超时,默认为0,会一直等。设置500毫秒的话,如果500毫秒内凑齐并发数,就先发出去了。
并发请求
先禁用同步定时器,线程组设置30,循环一次
运行后用表格查看结果,会看到starttime没有重复的,说明没有并发的请求
打开同步定时器,设置模拟用户组的数量为3,也就是3个并发,超时先设置为0
再次运行,就可以看到在同一时间会发出3个请求(这里不是绝对的,会更接近3个并发)
那么这里设置的并发数,会等线程数达到这个数量后一起发出去,起到并发的作用
超时时间
前面设置线程数30,并发3,刚好每凑齐3个请求一起发出去。如果线程数30,并发为7,最后还有2个请求凑不齐会怎样?
可以看到右上角有2个线程会一直等待,不会自动结束,因为前面超时时间为0,就一直等待。
为了避免这种一直等待的情况,可以设置同步定时器的超时时间,比如我设置500毫秒,如果500毫秒还没凑齐7个请求,那就先发出去,不用一直等了。
运行后,查看结果
原文地址https://www.cnblogs.com/yoyoketang/tag/jmeter/,转载请注明出处!