一、前言
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个请求,那就先发出去,不用一直等了运行后,查看结果