Jmeter系列(5)- 基础线程组Thread Group 如何设置线程数,ramp-up period,循环次数
1. 执行第一次数据采样
得到吞吐率和平均响应时间:
吞吐率=10 ,平均响应时间:t=0.1秒;
2. 计算理想 ramp-up period (T)
假设线程N=20,估计的吞吐率=10, 那么估计的理想 ramp-up period (T)= 20/10 = 2 秒
3. 计算循环次数 A
由于我们要考虑在第一个线程结束的时候,确保最后一个线程能启动,那么第一个线程循环执行的时间至少要大于一个值(最后一个线程启动的时间),这个值定位 S=T-T/N=2-2/20=1.9
当时间到 S=(T-T/N)
时,最后一个线程启动,若要使所有线程同时运作,则需要在最后一个线程启动的时候第一个线程仍未关闭,为达到这个要求,需满足 A > S/t
。
代入数字可得 A>1.9/0.1=19次
。
当 A = 19
时,循环19次,结束的时候,最后一个线程刚好启动。所以 循环次数A 需要 大于19
总的表达式 :
-
A>(T-T/N)/t
-
ramp-up = 线程数/吞吐率
-
循环次数 = (ramp - ramp/线程数)/平均响应时间
单个线程循环运行总时间既是 R = A·t
(此处的A是大于S/t的某一值),当时间到 S=(T-T/N)
时,最后一个线程启动,整个测试理论运行时间则是 :``S + R = (1-1/N)·T + A·t`
压测结果分析
1、TPS如果大于并发数,则说明并发数还可以往上加;如果出现TPS小于并发数的时候说明已经不能增加了,可以慢慢往下减,找到最佳并发数