JMeter 定时器(Synchronizing Timer)之集合点应用
性能测试中我们经常提到一个概念就是“并发”,其实在实际真实的性能测试中是不存在真正的并发的。为了更真实的模拟对一个请求的并发测试场景,我们通常设置一个集合点,JMeter中提供了这样的一个功能设置。
那么集合点的大致概念是什么呢?
简单理解就是:设置一个阀值(请求数量),当请求数达到这个阀值时,允许请求同时发出。例如:想测试一座桥的并发(忽略载重等其他因素,只考虑通过),那么并发的请求就是类似于多少辆车可同时通过桥,而车辆一般情况下是不可能同时通过桥的,因而我们可以在桥头A,设置一个集合点,等车辆数满足一定的数量,同时让车辆通过此桥。
添加路径:右键单击线程组,依次选择【添加/定时器/Synchronizing Timer】即可添加集合点
添加后,显示如下图所示:
PS:超时时间为0时,默认无超时限制。
实际运行过程中,可能出现请求数当不满足集合点设置的请求数时,JMeter一直卡顿在如下页面:
解决办法是:设置同步定时器的超时时间。
同步定时器(Synchronizing Timer)的超时时间设置要求:
超时时间 > 请求集合数量 * 1000 / (线程数 / 线程加载时间)
至此,此文顺利完结,希望此文能够给初学 JMeter 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
原文来源 https://www.cnblogs.com/fengpingfan/p/5583594.html
ps:公式解释:超时时间的设定值约束:超时时间 > 请求集合数量 * 1000 / (线程数 / 线程加载时间)
首先要弄明白同步计时器的超时时间定义:若在超时时间内,性能测试并发场景设定的并发样本数量未达到,则jmeter认为超时,会立即执行并发。这样就不符合你设定的性能测试场景。
分母计算结果为:每秒启动的线程数;
请求集合数量:为设定的性能测试场景的样本并发数量;
不等式右边计算结果为:加载性能并发样本所需时间(毫秒)
综上,同步定时器的超时时间建议设置为大于不等右边。
分母计算结果为:每秒启动的线程数;
请求集合数量:为设定的性能测试场景的样本并发数量;
不等式右边计算结果为:加载性能并发样本所需时间(毫秒)
综上,同步定时器的超时时间建议设置为大于不等右边。
问题:
1. 集合请求数量为什么要 乘以 1000 ?
2. 线程数 是单指线程组的线程数 还是 线程数 * 循环次数? 比如线程组的线程数是 100 ,循环次数是10,这里分母中的线程数是100 还是100*10?
1. 集合请求数量为什么要 乘以 1000 ?
2. 线程数 是单指线程组的线程数 还是 线程数 * 循环次数? 比如线程组的线程数是 100 ,循环次数是10,这里分母中的线程数是100 还是100*10?
解答:
1、换算成毫秒
2、100
2、100