Jmeter - 线程组和循环控制器在性能方面的差异

use*_*294 5 jmeter

我是 Jmeter 的新手。这是让我困惑的一件事

我正在测试两种使用 Jmeter 计算性能数据的场景

  1. 设置 1 个线程组,循环计数设置为 50,并设置 1 个 https 采样器。
  2. 有 1 个线程组,循环计数仅为 1,但使用循环计数设置为 50 的循环控制器。在这种情况下,我的 https 采样器位于循环计数内。

在这两种情况下,https 采样器都运行了 50 次,但我注意到有很多性能差异。

For 1 - 100 ms ( Average of 50 calls)
For 2 - 30 ms ( Average of 50 calls)
Run Code Online (Sandbox Code Playgroud)

问题是为什么我会看到这种差异。理想情况下,这两种情况应该给出相同的性能数字。另外,要添加到我的 Jmeter 设置中,我将“使用保持活动”设置为关闭,并且 https.use.cached.ssl.context 在 jmeter.properties 中设置为 false。

Dmi*_*i T 0

Ramp-up对于在线程组级别定义 50 个循环的场景,您的设置是什么?根据文档

加速周期告诉 JMeter 需要多长时间才能“加速”到所选线程的全部数量。如果使用 10 个线程,并且启动周期为 100 秒,那么 JMeter 将花费 100 秒来启动并运行所有 10 个线程。每个线程将在前一个线程开始后 10 (100/10) 秒启动。如果有 30 个线程且启动周期为 120 秒,则每个连续线程将延迟 4 秒

默认情况下,ramp-up 为1。如果您正在寻找线程组和循环控制器相同的行为,则需要将其设置为0.

展望未来,像 JMeter 一样快地发送请求还不能称为现实生活中的负载场景。真正的用户不会敲击这个或那个端点,他们在执行下一步操作之前需要一些时间“思考”。这个“思考时间”可以使用Constant Timer来模拟。然而,设置所需负载的更智能方法是使用恒定吞吐量计时器