13-性能测试之JMeter计时器
导读
- 各类计时器
1、计时器
计时器一般被我们用来设置延迟与同步,定时器的优先级高于Sampler,在同一作用域下有多个计时器存在时,它们都会执行;如果想让某一计时器只针对某一个Sampler有效,则要把计时器加到该Sampler下面。请看下图
我们在请求1后面(但是同级)加了一个特定时间计时器,设定时间是3秒,然后再请求2下面(注意下面,不是后面)加了一个特定计时器,设定时间3秒,点击启动,然后观察“查看结果树”,同时看右上角时间,大约3秒后,出现第一个请求,说明即便是计时器在请求1的后面,对其也是有效果的,然后大约再过6秒后(两个计时器同时生效),才出现请求2,然后再过3秒出现请求3。
或者等请求发送完成后,查看一下Sampler result页面的请求发送时间,来验证一下我前面写的结论是否正确
添加计时器步骤,如下图所示:
前面我们介绍过Constant Timer(特定时间计时器)和Synchronizing Timer(同步计时器),今天来看看其它的
2、Constant Timer
为了保持本节的完整性,简单说一下,设定固定时长,用来模拟思考时间
注意,时间单位是ms
3、Gaussian Random Timer
高斯随机计时器
这个计时器暂停每个线程请求的时间,大部分时间间隔发生在一个特定值附近。总延迟是高斯分布值(均值为0.0,标准差为1.0)的总和,乘以你指定的偏差值和偏移值。另一种解释它的方法是,在高斯随机定时器中,常量偏移量的变化有高斯曲线分布。
(1)Deviation in milliseconds:偏差,以毫秒为单位
(2)Constant Delay Offset:除了随机延迟之外,暂停的毫秒数。
上图中的设置就是说每个线程请求,暂停的时间是300ms+0~100ms的随机数,这个随机数符合高斯分布
4、Uniform Random Timer
均匀随机计时器
(1)Constant Delay Offset:固定等待时间
(2)Random Delay Maximum:小于等于设定值的随机延迟时间
如上图的计时器,每个请求发送前等待的时间应该是2秒到2+3=5秒之间
5、Synchronizing Timer
同步计时器,用来模拟多用户并发,或者说更严格的并发场景,比如秒杀活动,就要用这个东东了
需要注意上图中红框中的两个设置,第一个是等待多少个线程一起执行。第二个是超时时间(默认是0),当为0的时候,就是一直等,感情深,不见不散;当设定了非0的时间,就是等不够线程,到点了,就3了,友谊的小船,说翻就翻。
6、Precise Throughput Timer
精确的吞吐量计时器
编辑完,删掉了,前面的是根据时间来做定时器(到了多少秒就发请求);这里是根据吞吐量在做计时器(到了多少量就发请求),给人的感觉就像大坝蓄水,到了什么警戒线,就开始放水。但是看了官网不太明白,也找不到例子证明,暂时删除解释。
7、Constant Throughput Timer
固定吞吐量计时器
JMeter 根据线程的数量,请求的大小,调整请求的发送速度,以期保持在一个相对固定的吞吐量。具体不懂
8、BeanShell Timer
9、JSR223 Timer
10、Poisson Random Timer
这个计时器暂停每个线程请求的时间,大部分时间间隔发生在一个特定值附近。总延迟是泊松分布值和偏移值之和。
注意:如果您想建模泊松到达,请考虑使用Precise Throughput Timer 。