JMeter中的定时器(Timer)有哪些?

JMeter中的定时器(Timer)用于控制取样器(Sampler)的执行频率,实现定时发送请求。

使用定时器可以实现以下功能:

  1. 控制线程发送请求的频率,模拟真实用户操作间隔。
  2. 实现高并发大负载的压力测试,使用0或较小延迟。
  3. 使用随机定时器产生随机间隔,模拟不同用户的操作频率。

JMeter支持以下几种定时器:

  1. 恒定定时器:使用固定的延迟(毫秒)间隔发送请求。用于高负载测试。
  2. 高斯随机定时器:使用高斯分布产生随机延迟间隔。用于模拟真实场景。
  3. 单臂随机定时器:使用自定义的最小和最大值产生随机延迟间隔。用于模拟不同用户间隔。
  4. 指数定时器:使用指数算法产生随机延迟间隔,最小可达100毫秒。用于高负载测试。
  5. 布豪斯定时器:使用布豪斯(Poisson)分布算法产生随机间隔,最小可达1毫秒。用于极高负载测试。
  6. SSG定时器:使用SSG算法产生随机间隔,最小可达1毫秒。用于极高负载测试。
  7. 同步定时器:用于同步线程,当指定的线程数达到阈值时,才继续执行。

一个简单的示例:

线程组:
线程数: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秒,模拟较高并发。
定时器允许我们精确控制线程发送请求的频率,配合不同的算法可以实现从正常到极高负载的并发测试。