jmeter压测学习29-定时器之同步定时器Synchronizing Timer(设置集合点)

前言

LoadRunner 中可以设置一个集合点,设置多个虚拟用户等待到一个时间点,到齐后一起发请求达到并发的目的。
集合点概念:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力
jmeter 中使用同步定时器 Synchronizing Timer实现 LoadRunner 中集合点的功能,模拟多用户并发测试,即多个线程在同一时刻并发请求。

同步定时器 Synchronizing Timer

在HTTP请求的样本下添加-定时器-同步定时器

jmeter压测学习29-定时器之同步定时器Synchronizing Timer(设置集合点)_第1张图片

有2个参数设置

  • 模拟用户组的数量(Number of Simulated Users to Group by) 也就是并发数,集合多少请求后一起发出去
  • 超时时间以毫秒为单位(Timeout in milliseconds) 指定人数多少秒没集合到算超时,默认为0,会一直等。设置500毫秒的话,如果500毫秒内凑齐并发数,就先发出去了。

并发请求

先禁用同步定时器,线程组设置30,循环一次

jmeter压测学习29-定时器之同步定时器Synchronizing Timer(设置集合点)_第2张图片

运行后用表格查看结果,会看到starttime没有重复的,说明没有并发的请求

jmeter压测学习29-定时器之同步定时器Synchronizing Timer(设置集合点)_第3张图片

打开同步定时器,设置模拟用户组的数量为3,也就是3个并发,超时先设置为0

jmeter压测学习29-定时器之同步定时器Synchronizing Timer(设置集合点)_第4张图片

再次运行,就可以看到在同一时间会发出3个请求(这里不是绝对的,会更接近3个并发)

jmeter压测学习29-定时器之同步定时器Synchronizing Timer(设置集合点)_第5张图片

那么这里设置的并发数,会等线程数达到这个数量后一起发出去,起到并发的作用

超时时间

前面设置线程数30,并发3,刚好每凑齐3个请求一起发出去。如果线程数30,并发为7,最后还有2个请求凑不齐会怎样?

jmeter压测学习29-定时器之同步定时器Synchronizing Timer(设置集合点)_第6张图片

可以看到右上角有2个线程会一直等待,不会自动结束,因为前面超时时间为0,就一直等待。

jmeter压测学习29-定时器之同步定时器Synchronizing Timer(设置集合点)_第7张图片

为了避免这种一直等待的情况,可以设置同步定时器的超时时间,比如我设置500毫秒,如果500毫秒还没凑齐7个请求,那就先发出去,不用一直等了。

jmeter压测学习29-定时器之同步定时器Synchronizing Timer(设置集合点)_第8张图片

运行后,查看结果

jmeter压测学习29-定时器之同步定时器Synchronizing Timer(设置集合点)_第9张图片

原文地址https://www.cnblogs.com/yoyoketang/tag/jmeter/,转载请注明出处!

你可能感兴趣的:(jmeter)