统一随机定时器和高斯随机定时器的作用差异不大,区别在于延时时间在指定范围内且每个时间的取值概率相同,每个时间间
隔都有相同的概率发生,总的延迟时间就是随机值和偏移值之和。该定时器可以在请求之间设置一个随机延时,每个随机延时
有相同的发生概率。总的延时 = 随机延时时间 + 固定延迟偏移
下面表示的是随机延迟时间的最大值是2000毫秒:
Random Delay Maximum(in milliseconds)
: 随机延迟时间,延迟的最大毫秒数
Constant Delay Offset(in milliseconds)
: 固定延迟偏移,暂停的毫秒数减去随机延迟的毫秒数
如图:在的定时器的作用域内的每个取样器之间随机停顿 0 - 2s + 1.5s,无顺序影响(若线程组设置循环多次次, 生效规则一样)
可以让JMeter以指定数字的吞吐量(即指定TPS, 只是这里要求指定每分钟的执行数, 而不是每秒)执行
吞吐量的计算范围可以为指定为当前线程、所有活动的线程、当前线程组中所有活动线程等范围,并且计算吞吐量的依据
可以是最近一次线程的执行时延特定的场景下,这种定时器在还是很有用的
如图,实现了测试需求:测试20个用户访问网站在负载达到30QPS时的平均响应时间
目标吞吐量(Target throughput
):注意这里是每分钟发送的请求数, 因此, 对应测试需求中所要求的20QPS, 这里的值应该是1200
基于计算的吞吐量(Calculate Throughput based on
), 有5个选项,分别是:
只有此线程(This thread only
)
控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的 target Throughput 乘以线程的数量
所有活动的线程(All active threads
设置的target Throughput 将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程
当前线程组中所有活动线程(All active threads in current thread group
)
设置的目标吞吐量将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和所有活动的线程选项的效果完全相同
所有活动线程 : 共享(All active threads (shared)
)
与所有活动的线程选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行
当前线程组中所有活动线程: 共享(All cative threads in current thread group(shared)
)
与当前线程组中所有活动线程基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行
设置定时器的目标吞吐量为1200/分钟(20 QPS),设置基于计算的吞吐量的值为所有活动的线程
注:当然,常数吞吐量定时器只有在线程组中的线程产生足够多的请求的情况下才有意义,因此,即使设置了常数吞吐量定时器的值,也可能由于线程组中的线程数量不够,或是定时器设置不合理等原因导致总体的QPS不能达到预期目标
作用:这个定时器在每个线程请求之前按随机的时间停顿,总的延迟就是泊松分布值和偏移值之和
上面表示暂停时间会分布在100到400毫秒之间:
Lambda(in milliseconds)
: 兰布达值
Constant Delay Offset(in milliseconds)
: 固定延迟偏移, 暂停的毫秒数减去随机延迟的毫秒数
什么是泊松随机数: 传送门