1,Jmeter 定时器之Constant Timer

本文介绍了JMeter中的Constant Timer,它在每个采样器前执行,用于模拟用户思考时间。Constant Timer设置的延迟时间是固定的毫秒数。在同一个Thread Group中,每个Sampler都会调用到全局的Constant Timer,而单独Sampler下的定时器只对其自身生效。通过举例详细解释了不同Sampler的执行顺序和时间间隔。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    1、定时器作用域

  • 定时器是在每个sampler(采样器)之前执行的,而不是之后(不管定时器的位置在sampler之前还是下面);
  • 当执行一个sampler之前时,所有当前作用域内的定时器都会被执行;
  • 如果希望定时器仅应用于其中一个sampler,就把定时器作为子节点加入;
  • 如果希望sampler执行完之后再等待,则可以使用Test Action

    2、Constant Timer说明

          Constant timer 是设定固定时长,用来模拟思考时间 ,单位是:毫秒


 

对于添加的Constant Timerd本次设置的解析:

1,Constant Timer设置的Thread delay的时间都是 3000 毫秒(及3秒)

2,在这个Thread Group中设置了一个整体Constant Timer,这个定时器每个Sampler都会调用到;Http Request1和Http Request2的节点下都有一个作用与自己的Constant Timer

3,开始执行的时候,Http Request1会先执行Thread Group和自己Sampler下的计时器,开始执行后6秒钟执行;Http Request2也会先执行Thread Group和自己Sampler下的计时器,在Http Request1执行后的6秒后执行;Http Request3则是执行了Thread Group 中的定时器,及Http Request2后的3秒钟后执行,Http Request4同Http Request3

### JMeter定时器的配置与使用方法 JMeter提供了多种类型的定时器,每种定时器都有其特定的功能和配置方式。以下是对几种常见定时器的详细说明及配置方法: #### 1. 固定定时器Constant Timer) 固定定时器用于在每个采样器执行前添加固定的延迟时间。通过设置`Thread Delay`参数来定义延迟的时间长度(单位为毫秒)。 ```xml <elementProp name="ConstantTimer.delay" elementType="Argument"> <attribute name="value">1000</attribute> <!-- 设置延迟时间为1000毫秒 --> </elementProp> ``` 此配置表示每个采样器在执行前会等待1秒[^1]。 #### 2. 随机定时器(Gaussian Random Timer 和 Uniform Random Timer) 随机定时器允许在固定延迟的基础上增加随机性。例如,均匀随机定时器(Uniform Random Timer)可以通过设置偏移量来生成一个范围内的随机延迟。 ```xml <elementProp name="UniformRandomTimer.range" elementType="Argument"> <attribute name="value">500</attribute> <!-- 偏移量为500毫秒 --> </elementProp> <elementProp name="UniformRandomTimer.offset" elementType="Argument"> <attribute name="value">1000</attribute> <!-- 基础延迟为1000毫秒 --> </elementProp> ``` 上述配置表示延迟时间将在1000毫秒到1500毫秒之间随机变化[^1]。 #### 3. 同步定时器(Synchronizing Timer) 同步定时器用于模拟大量用户同时访问某个资源的情况。它通过将线程分组并让它们等待直到达到指定数量后才一起释放。 - **Number of Simulated Users to Group by**:需要同步的线程数。 - **Timeout in milliseconds**:超时时间(默认为0,表示无限等待)。 ```xml <elementProp name="SynchronizingTimer.delay" elementType="Argument"> <attribute name="value">0</attribute> <!-- 超时时间为0 --> </elementProp> <elementProp name="SynchronizingTimer.numberToGroup" elementType="Argument"> <attribute name="value">10</attribute> <!-- 同步10个线程 --> </elementProp> ``` 如果超时时间设置为大于0的值,则当达到指定的线程数或超时时间到达时,定时器会释放线程[^2]。 #### 4. 常数吞吐量定时器Constant Throughput Timer) 常数吞吐量定时器用于控制测试期间的吞吐量(以每分钟的样本数为单位)。通过调整目标吞吐量值,可以限制JMeter发送请求的频率。 ```xml <elementProp name="ConstantThroughputTimer.targetThroughput" elementType="Argument"> <attribute name="value">300</attribute> <!-- 每分钟300个请求 --> </elementProp> ``` 注意,实际吞吐量可能会因线程数和其他因素而略有波动[^3]。 #### 5. 测试动作定时器(Test Action Timer) 测试动作定时器允许在采样器执行前后暂停一段时间。通过设置`Action`、`Target`和`Duration`参数来定义具体的行为。 ```xml <elementProp name="Action" elementType="Argument"> <attribute name="value">PAUSE</attribute> <!-- 执行暂停操作 --> </elementProp> <elementProp name="Duration" elementType="Argument"> <attribute name="value">2000</attribute> <!-- 暂停2000毫秒 --> </elementProp> ``` ### 注意事项 - 定时器的作用域是在每个采样器之前执行,无论定时器的位置是在采样器之前还是之后[^1]。 - 如果希望定时器仅应用于某个特定的采样器,可以将定时器作为该采样器的子节点添加。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值