JMeter中的定时器(Timer)用于控制取样器(Sampler)的执行频率,实现定时发送请求。
使用定时器可以实现以下功能:
- 控制线程发送请求的频率,模拟真实用户操作间隔。
- 实现高并发大负载的压力测试,使用0或较小延迟。
- 使用随机定时器产生随机间隔,模拟不同用户的操作频率。
JMeter支持以下几种定时器:
- 恒定定时器:使用固定的延迟(毫秒)间隔发送请求。用于高负载测试。
- 高斯随机定时器:使用高斯分布产生随机延迟间隔。用于模拟真实场景。
- 单臂随机定时器:使用自定义的最小和最大值产生随机延迟间隔。用于模拟不同用户间隔。
- 指数定时器:使用指数算法产生随机延迟间隔,最小可达100毫秒。用于高负载测试。
- 布豪斯定时器:使用布豪斯(Poisson)分布算法产生随机间隔,最小可达1毫秒。用于极高负载测试。
- SSG定时器:使用SSG算法产生随机间隔,最小可达1毫秒。用于极高负载测试。
- 同步定时器:用于同步线程,当指定的线程数达到阈值时,才继续执行。
一个简单的示例:
线程组:
线程数:10
恒定定时器:
延迟:0毫秒
高斯随机定时器:
延迟:5000 毫秒
偏差:2000 毫秒
HTTP请求:
请求URL:http://httpbin.org/get
HTTP请求:
请求URL:http://httpbin.org/get
布豪斯定时器:
平均值:1000毫秒
偏差:1000毫秒
运行测试计划,线程会首先使用恒定定时器无间隔发送第一个HTTP请求,实现高负载。
使用高斯随机定时器发送第二个HTTP请求,随机间隔在3-7秒,模拟正常用户。
使用布豪斯定时器发送第三个HTTP请求,随机间隔在0-2秒,模拟较高并发。
定时器允许我们精确控制线程发送请求的频率,配合不同的算法可以实现从正常到极高负载的并发测试。