Skip to content

定时器(Timer

常量吞吐量定时器

todo:暂时没有需求,没有弄清楚All active threads (shared)All active threads in current thread group (shared)参数用法

JMeter中的Constant Throughput Timer(常量吞吐量定时器)是一种用于控制测试脚本执行速度的工具,旨在保证测试在一定时间内达到预设的吞吐量。吞吐量可以理解为在一定时间内完成的请求次数,通常以每秒请求数(RPS)或每分钟事务数(TPM)来表示。然而,需要注意的是,Constant Throughput Timer实际上是以每分钟的样本数(samples per minute)为单位来设置吞吐量的,而不是每秒。

以下是关于Constant Throughput Timer的详细介绍:

工作原理

Constant Throughput Timer通过在两次请求之间引入一定的延迟,从而保证整个测试的吞吐量保持在预设的目标值。例如,如果设置目标吞吐量为60 TPM,JMeter会尽量调整延迟,使得每分钟真正发出的请求数接近60。

设置参数

  • Target throughput (in samples per minute):每分钟的吞吐量,即每分钟希望发送的请求数。
  • Calculate Throughput based on:计算吞吐量的基础,有以下几种选项:
    • This thread only:控制每个线程的吞吐量。总的吞吐量为设置的target Throughput乘以线程的数量。
    • All active threads:设置的target Throughput将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。
    • All active threads (shared):与All active threads的选项基本相同,但每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。
    • All active threads in current thread group:设置的target Throughput将分配在当前线程组的每一个活跃线程上。当测试计划中只有一个线程组时,该选项和All active threads选项的效果完全相同。
    • All active threads in current thread group (shared):与All active threads in current thread group选项基本相同,但每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。

使用注意事项

  1. 单位注意:Constant Throughput Timer的单位是每分钟的样本数,而非每秒。因此,在设置时需要根据实际需求进行转换。
  2. 线程数影响:如果测试计划是并发执行的,可能需要增加更多的线程数才能达到预设的吞吐量。
  3. 实际吞吐量与预设值的差异:定时器并不能保证实际吞吐量一定等于预设值。实际吞吐量可能受到服务器处理速度、网络延迟等多种因素的影响。
  4. 多个定时器的影响:如果测试计划中有多个Constant Throughput Timer,它们的效果会叠加。因此,在设置时需要谨慎考虑。
  5. 使用场景:Constant Throughput Timer常用于需要控制测试执行速度的场景,如混合场景压测、接口吞吐量测试等。

结论

Constant Throughput Timer是JMeter中一个非常有用的工具,可以帮助用户更好地控制和模拟实际的用户负载。然而,在使用时需要注意其工作原理和限制,并根据测试需求进行合理配置。