使用jmeter时,定时器的主要目的是模拟用户的思考时间,定时器会在每个取样器运行之前执行,如果有多个定时器,则在采样器执行之前将运行所有定时器
作用域原则:
- 定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位置在sampler之前还是之后)
- 当执行一个sampler之前时,所有当前作用域内的定时器都会被执行
- 如果希望定时器仅应用于其中一个sampler,则把定时器作为子节点加入
固定定时器
如果要让每个线程在请求之间暂停相同的时间,可以使用此计时器,需要注意的是:固定计时器的延时不会计入单个取样器的响应时间,但会计入事务控制器的时间,如果在事务控制器内使用,需要关注一下。固定定时器放到线程组下其作用域是所有请求都会延迟固定器设置的时间,如果放到请求内,作用域是单个请求延迟时间(常用)
添加固定定时器
样例
执行结果
子节点有固定定时器的请求晚执行了10s
统一随机定时器
它产生的延迟时间是个随机值,而各随机值出现的概率均等。总的延迟时间等于一个随机延迟时间加上一个固定延迟时间,用户可以设置随机延迟时间和固定延迟时间
总延迟时间=指定范围内的随机时间 + 固定延迟时间
添加统一随机定时器
- Random Delay Maximum(in milliseconds):随机延迟最大的时间 单位毫秒
- Constant Delay Offset(in milliseconds):固定延迟时间 单位毫秒
样例
延迟时间在3~6s之间
执行结果
子节点有统一随机定时器的请求晚执行了4s左右
高斯随机定时器
实际生活中随机值的发生概率并不相等,而是符合正太分布或者是高斯随机分布
那么什么是高斯随机数?高斯随机数是指均值为0,方差为1的随机数
添加高斯随机定时器
总延迟 = 高斯分布值(平均0.0和标准偏差1.0)* 指定的偏差值+固定延迟偏移
(Math.abs((this.random.nextGaussian() * 偏差值) + 固定延迟偏移))
样例
延迟时间在4~6s之间
执行结果
子节点有高斯随机定时器的请求晚执行了5s左右