准确的吞吐量定时器使用实例:
说明:配置10个线程,每个线程请求200次,通过准确地屯托梁定时器模拟QPS为20的场景
-
配置测试接口参考链接
-
配置jmeter测试脚本,主要关注准确的吞吐量定时器参数配置
- 目延迟线程已确保目标吞吐量
- 目标吞吐量(每个 "吞吐周期"的样本 ):和吞吐周期关联。吞吐周期为1秒时,该值为期望的TPS
- 吞吐周期(秒):设置为1
- 测试持续时间(秒):5秒。必须大于等于5秒,否则jmeter会抛出异常:`o.a.j.t.p.ConstantPoissonProcessGenerator: Duration should exceed 5 seconds``
- 批处理离开
- 批处理中的线程数(线程):和线程组的配置保持一致
- 批处理中的线程之间的延迟(ms):每个线程间的延迟时间,使用默认值
- 生成延迟的准确性略
- 设置以确保可重复的顺序略使用默认值
- 目延迟线程已确保目标吞吐量
准确的吞吐量定时器 Precise Throughput Timer 与 常量吞吐量定时器 Constant Throughput Timer
- 相同 :都是 JMeter 中用于控制负载生成速率的定时器组件
- 不同:
- 准确的吞吐量定时器:准确的吞吐量定时器是基于实际吞吐量来计算延迟的定时器。它使用 JMeter 中对请求的响应时间进行测量来动态调整请求之间的延迟,以达到指定的吞吐量。准确的吞吐量定时器能够更精确地控制负载的生成速率,尤其在负载变化较大的情况下。
- 常量吞吐量定时器:常量吞吐量定时器是基于固定的延迟和吞吐量值来控制请求之间的时间间隔。它假定稳定的负载情况下,每个请求之间的延迟是固定的,并使用指定的吞吐量来计算请求之间的延迟时间。常量吞吐量定时器适用于需要在指定吞吐量下长时间运行的负载测试情况。
准确的吞吐量定时器 和 常量吞吐量定时器选择时,考虑的因素:
-
实际负载情况:如果您需要模拟一个稳定负载的系统,常量吞吐量定时器可能更适合。它可以按照指定的吞吐量发送请求,并在请求之间保持固定的延迟时间这对于长时间运行的负载测试非常有效。
-
动态负载情况:如果您的负载情况会发生变化,准确的吞吐量定时器可能更适合。它可以根据实际吞吐量动态调整请求之间的延迟时间,以尽量接近目标吞吐量。这对于模拟负载波动或负载峰值的情况非常有效。
-
精确性要求:如果您需要更精确地控制负载生成速率,准确的吞吐量定时器可能更适合。它根据实际吞吐量进行动态调整,可以提供更准确的负载控制。
-
性能影响:准确的吞吐量定时器需要测量请求的响应时间,并进行动态计算和调整。这可能会对 JMeter 的性能产生一定的影响。如果性能是一个关键因素,您可以考虑使用常量吞吐量定时器。