JMeter定时器
JMeter 定时器
简介
JMeter 定时器是 Apache JMeter 工具中的一种元件,用于模拟用户行为中的时间间隔。JMeter 定时器是在每个 sampler 之前执行的,在执行测试脚本时模拟用户请求之间的延迟或等待时间,以更真实地模拟用户在实际场景中的行为。
常用的定时器
- Constant Timer(固定定时器)
- Gaussian Random Timer(高斯随机定时器)
- Constant Throughput Timer(吞吐量定时器)
- Synchronizing Timer(并发定时器)
Constant Timer
Constant Timer(固定定时器)是 Apache JMeter 中的一种定时器元件,用于向测试计划中的每个请求添加固定的等待时间。它可以模拟用户在执行测试脚本时之间的固定延迟或等待时间,使得用户请求之间的时间间隔具有一致的固定间隔。
添加 Constant Timer:
测试计划 -> 线程组 -> (右键添加) Timer(定时器) -> Constant Timer
如下图:
相关参数配置:
- Thread Delay (in milliseconds):线程延迟时间,单位是毫秒。
Gaussian Random Timer
Gaussian Random Timer(高斯随机定时器)是一个在性能测试工具 Apache JMeter 中常用的定时器组件之一。它的作用是在测试计划中插入随机时间延迟,模拟真实的用户行为,使得负载更加真实和多样化。
添加 Gaussian Random Timer:
测试计划 -> 线程组 -> (右键添加) Timer(定时器) -> Gaussian Random Timer
如下图:
相关参数配置:
- Deviation (in milliseconds):偏差时间,单位是毫秒。
- Constant Delay offset (in milliseconds):固定延迟偏移时间,单位是毫秒。
Constant Throughput Timer
Constant Throughput Timer(吞吐量定时器)是 Apache JMeter 中的一个定时器组件,它用于控制负载测试中的吞吐量。通过控制每个请求之间的时间间隔,以达到一定的吞吐量目标。这使得在负载测试中可以保持稳定的请求速率,从而更好地模拟实际用户的行为并进行性能评估。
添加 Constant Throughput Timer:
测试计划 -> 线程组 -> (右键添加) Timer(定时器) -> Constant Throughput Timer
如下图:
相关参数配置:
- Target throughput (in samples per minute):目标吞吐量(每分钟的样本量),也就是每分钟的吞吐量。
- Calculate Throughput based on:基于计算吞吐量
- 只有此线程(this thread only):控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的 target Throughput 乘以该线程的数量。
- 所有活动线程(all active threads):设置的 target Throughput 将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程。
- 当前线程组中的所有活动线程(all active threads in current thread group):设置 target Throughput 将分配在当前线程组的每一个跃线程上,当测试计划中只有一个线程组时,该选项与 all active threads 选项的效果完全相同。
- 所有活动线程(共享)(all avtive threads(shared)):与 all active threads 的选项基 相同。唯一区别是,每个活跃线程都会在所有活跃线上一次运行结束后等待合理的时间后再次运行。
- 当前线程组中的所有活动线程(共享)(all active threads in current thread group (shared)):与 all active threads in current thread group 基本相同,唯一的区别是 每个活跃线程都会在所有活跃线程的上一次运行结束等待合理的时间后再次运行。
- 注意:一般选择所有活动线程(all active threads)。
Synchronizing Timer
Synchronizing Timer(并发定时器)是 Apache JMeter 中的一个定时器组件,用于确保并发用户在测试中同时执行某个操作。在负载测试中,有时需要模拟多个用户在同一时间点执行某个操作,这时可以使用 Synchronizing Timer 来实现同步。
添加 Synchronizing Timer:
测试计划 -> 线程组 -> (右键添加) Timer(定时器) -> Synchronizing Timer
如下图:
相关参数配置:
- 模拟用户组的数量:每次释放的线程数量,即并发数。默认为 0,设置为 0 则并发数等于线程租中的线程数;设置大于 0 则等待达到这个数量再并发执行。
- 超过时间以毫秒为单位:默认为 0,如果设置为 0,该定时器将会等待线程数达到了"模拟用户组的数量"中设置的值才释放;设置大于 0,超过设置的时间但是没达到"模拟用户组的数量"的线程数,将不再等待,释放当前的线程数。
- 注意:如果上面两个参数如果都设置了值,则是哪个条件先达到,定时器先执行哪个。
将模拟用户组数量设置为 10,同时线程组用户数设置为 10,循环设置为永久,然后添加 View Results in Table 组件即可查看请求效果,如下图:
总结
- JMeter 定时器简介
- 常用定时器的使用