JMeter 教程 - 定时器(上)
在 JMeter 中,定时器(Timers)用于在取样器(Sampler)之间引入延迟,以模拟真实用户的操作行为。定时器可以帮助避免服务器过载、模拟用户思考时间以及实现更真实的负载测试。
一、常用定时器
- Constant Timer
- Gaussian Random Timer
- Uniform Random Timer
- Constant Throughput Timer
- Synchronizing Timer
二、定时器详解
1. Constant Timer
用途:在取样器之间引入固定的延迟时间。
添加方法:
- 右键点击
Thread Group
或其他元素,选择Add
>Timer
>Constant Timer
。
配置参数:
- Thread Delay (in milliseconds):延迟时间,单位为毫秒。
示例:
设置 Thread Delay
为 2000
,表示每个取样器之间有 2 秒的固定延迟。
2. Gaussian Random Timer
用途:在取样器之间引入符合高斯分布的随机延迟时间。
添加方法:
- 右键点击
Thread Group
或其他元素,选择Add
>Timer
>Gaussian Random Timer
。
配置参数:
- Constant Delay Offset (in milliseconds):固定延迟时间,单位为毫秒。
- Deviation (in milliseconds):延迟时间的标准差,单位为毫秒。
示例:
设置 Constant Delay Offset
为 1000
,Deviation
为 300
,表示延迟时间为 1000 毫秒加上一个标准差为 300 毫秒的高斯随机值。
3. Uniform Random Timer
用途:在取样器之间引入符合均匀分布的随机延迟时间。
添加方法:
- 右键点击
Thread Group
或其他元素,选择Add
>Timer
>Uniform Random Timer
。
配置参数:
- Random Delay Maximum (in milliseconds):最大随机延迟时间,单位为毫秒。
- Constant Delay Offset (in milliseconds):固定延迟时间,单位为毫秒。
示例:
设置 Random Delay Maximum
为 500
,Constant Delay Offset
为 1000
,表示延迟时间为 1000 毫秒加上一个最大为 500 毫秒的均匀随机值。
4. Constant Throughput Timer
用途:控制取样器的吞吐量,以每分钟的请求数(requests per minute, RPM)为单位。
添加方法:
- 右键点击
Thread Group
或其他元素,选择Add
>Timer
>Constant Throughput Timer
。
配置参数:
- Target Throughput (in samples per minute):目标吞吐量,单位为每分钟样本数。
示例:
设置 Target Throughput
为 60
,表示每分钟最多执行 60 个取样器。
5. Synchronizing Timer
用途:使多个线程在同一时间点同步执行一个取样器。
添加方法:
- 右键点击
Thread Group
或其他元素,选择Add
>Timer
>Synchronizing Timer
。
配置参数:
- Number of Simulated Users to Group by:同步执行的线程数量。
- Timeout in milliseconds:超时时间,单位为毫秒。
示例:
设置 Number of Simulated Users to Group by
为 10
,表示每次有 10 个线程同时执行取样器。
三、定时器的使用示例
下面是一个示例测试计划,演示如何使用上述定时器:
-
创建测试计划:打开 JMeter,创建新的测试计划。
-
添加线程组:
- 右键点击
Test Plan
,选择Add
>Threads (Users)
>Thread Group
。 - 设置
Number of Threads (users)
为10
。 - 设置
Ramp-Up Period (seconds)
为10
。 - 设置
Loop Count
为1
。
- 右键点击
-
添加 Constant Timer:
- 右键点击
Thread Group
,选择Add
>Timer
>Constant Timer
。 - 设置
Thread Delay
为2000
毫秒。
- 右键点击
-
添加 Gaussian Random Timer:
- 右键点击
Thread Group
,选择Add
>Timer
>Gaussian Random Timer
。 - 设置
Constant Delay Offset
为1000
毫秒,Deviation
为300
毫秒。
- 右键点击
-
添加 Uniform Random Timer:
- 右键点击
Thread Group
,选择Add
>Timer
>Uniform Random Timer
。 - 设置
Random Delay Maximum
为500
毫秒,Constant Delay Offset
为1000
毫秒。
- 右键点击
-
添加 Constant Throughput Timer:
- 右键点击
Thread Group
,选择Add
>Timer
>Constant Throughput Timer
。 - 设置
Target Throughput
为60
样本/分钟。
- 右键点击
-
添加 Synchronizing Timer:
- 右键点击
Thread Group
,选择Add
>Timer
>Synchronizing Timer
。 - 设置
Number of Simulated Users to Group by
为10
,Timeout in milliseconds
为10000
毫秒。
- 右键点击
通过这些步骤,你可以在 JMeter 中使用各种定时器,控制取样器之间的延迟时间,使测试场景更加真实。在实际使用中,可以根据具体需求添加和配置相应的定时器,以实现更精细的负载测试。