一,定时器简介
一般用来设置延迟与同步。优先级高于取样器(提取器)
在默认情况下,jmeter发送每个请求之间是没有延时的,如果采用默认的方式,如果线程数足够大,瞬间就会将服务器压死。再则,实际的业务中,请求之间是有一定时间的停顿的。
所以在请求之间设置合理的延时是必须的,也是更接近用户真实业务情况。在jmeter中,定时器组件提供了系列不同类型的延时控制。合理使用定时器组件,可以让性能测试更接近真实,更能挖掘出系统的瓶颈和评估系统的性能指标。
定时器的作用域:
- 定时器是在每个请求之前执行的,无论定时器位置是在提取器前面还是后面
- 在执行一个请求之前,所有当前作用域内的定时器都会被执行
- 如果只是希望定时器仅仅应用于其中一个提取器,则把定时器作为子节点加入
二,定时器组件简介
1、Constant Throughput Timer
常数吞吐量定时器,可以用于控制每分钟请求数量。
模拟20QPS的场景
QPS简介:Query Per Second 每秒查询率。是一台查询服务器每秒能够处理的查询次数。20QPS = 每秒访问20次
1)20QPS,持续10秒,一共循环200次
2)线程组里定时器下组件:
设置的一分钟次数,为20*60 1200次
英文的长这样:
3)执行:
2、Synchronizing Timer
同步定时器,并发数设置时可以使用它。
注意点:
1)设置为0,无限等待,直到达到集合点设置的线程数。
2)设置指定时长,如果到达指定时长,集合点数量未到达,集合多少用户释放多少用户数量。
3)特殊情况:用户数小于Number of Simulated Users to Group 时或者非整除时,会一直拖到下面的时间到了才停止执行,设置为0的时候,就一直挂机了,因为凑不够一组一组的
3、BeanShell Timer
BeanShell定时器可用于生成延迟,待补充
4、JSR223 Timer
可使用JSR223脚本语言生成延迟,待补充
5、Constant Timer
Constant Timer(固定定时器)、Uniform Random Timer(统一随机定时器) 、Poisson Random Timer(泊松随机定时器) 、Caussian Random Timer (高斯随机定时器)4个定时器都可以用于控制时停使用
- 固定定时器,用于添加相同固定的延迟,添加的是一个定值
- 统一,泊松,高斯是不同规则的随机暂停
作用:
- 确保一些请求的数据建立的先后顺序
- 获取服务端某些数据之前添加固定定时器,用以确保之前的请求已经在服务端生成了数据
- 控制请求的时间间隔,延迟请求到达服务端的时间,模拟真实用户的行为
注意的点:
- 固定定时器的延时不会计入单个请求的响应时间,但会计入事务控制器的时间
- 此计时器将应用于每个单个请求。如果请求中包含其他计时器,则延迟将累加。
1) 对于【java请求】来说,该定时器相当于loadrunner中的pacing(两次迭代之间的间隔时间)
2) 对于【事务控制器】来说,该定时器相当于loadrunner中的think time(思考时间
3) 怎样理解LoadRunner的pacing和think time
6、Uniform Random Timer
统一随机定时器,模拟不同的延迟长度。这有助于在网页上模拟现实的用户行为。
作用:
- 该定时器可以在请求之间设置一个随机延时,每个随机延时有相同的发送概率。总的延时等于随机延时+偏移延时值
- Random…:随机延迟时间的最大毫秒数
- Constant…:除随机延迟之外暂停的毫秒数
7、Poisson Random Timer
泊松随机定时器,该定时器暂停每个线程请求一段随机时间,大部分时间间隔发生在特定值附近。总延迟是泊松分布值和偏移值之和。
作用:
- 该定时器暂停每个线程请求一段随机时间,大部分时间间隔发生在特定值附近。总延迟是泊松分布值和偏移值之和。
- Lambad…:Lambda值,以毫秒为单位
- Constant…:除随机延迟之外暂停的毫秒数
- 下图表示暂停时间会分布在100到400毫秒之间
- 如果要对泊松到达进行建模,请考虑使用准确的吞吐量定时器
- 泊松分布
8、Caussian Random Timer
高斯随机定时器,可以让每个线程在请求之间暂停一段随机时间。总延迟是高斯分布值加偏移值之和。
作用:
- 暂停每个线程请求一段随机时间,大部分时间间隔发生在特定值附近。总延迟是高斯分布值(平均值为0.0,标准差为1.0)乘以指定偏差值,再加上偏移值之和。
- Deviation…:偏差,以毫秒为单位。
- Constant…:除随机延迟之外暂停的毫秒数。
- 高斯随机数
9、jp@gc - Throughput Shaping Timer
待补充
10、Precise Throughput Timer
待补充