51

这是我的测试计划线程属性的配置:

Number of Threads (users): 100
Ramp-up Period (in seconds): 10
Loop Count : Forever
Delay thread creation until needed: No
Scheduler: No

我在一夜之间进行了测试,总持续时间为 14 小时 7 分钟(大约 50820 秒)。加载 jtl 文件后,摘要报告中显示的样本数为 1050975。我试图计算,但我不明白它是如何得出这么多样本的。

如果 Ramp-up Period 是 JMeter 创建每次迭代的线程数所花费的时间,并且如果测试的持续时间是 50820 秒,那么我应该只有 508200 个样本( 50820/10 * 100 )。我不知道循环计数如何或是否会影响这一点。

4

9 回答 9

85

线程组中的加速时间是 JMeter 启动线程总数所需的时间。在您的情况下,这意味着每 0.1 秒一个新线程在 10 秒后开始提供 100 个正在运行的线程。这 100 个线程背靠背地执行您的测试迭代,因此在加速后 100 个线程在测试期间连续运行。

于 2013-06-25T12:58:17.630 回答
34

Ramp-up Period - 所有请求开始的时间范围(以秒为单位)。输入中指定的所有线程Number of Threads都将在Ramp-up period.

例如:

100 个线程和 100 秒加速:每秒 JMeter 将启动1 个线程,直到所有线程在100 秒结束时启动。

100 个线程和 50 秒加速:每秒启动2 个线程

100 个线程和 200 秒加速:2 秒启动 1个线程

现在,

样本或请求生成与线程生成是不同的概念。在您的情况下,100 个线程在 10 秒内启动。这里的关键因素是吞吐量。根据 JMeter 词汇表:

吞吐量计算为请求/时间单位。时间从第一个样本开始到最后一个样本结束计算。这包括样本之间的任何间隔,因为它应该代表服务器上的负载。

公式为:吞吐量 =(请求数)/(总时间)。

这里执行的样本或请求的数量是1050975,测试持续时间是50820秒。所以这与吞吐量有关。输出1050975请求的50820s意思是整个测试的平均吞吐量20.5/s是近似的。

要接管ThroughputTransactions per second有非常方便的 JMeter 插件,称为Constant Throughput Timer

恒定吞吐量计时器引入了可变暂停,计算以使总吞吐量(以每分钟样本数计)尽可能接近给定数字。当然,如果服务器无法处理它,或者如果其他计时器或耗时的测试元素阻止它,吞吐量将会降低。

于 2016-07-01T13:33:47.463 回答
12

加速期告诉 JMeter 需要多长时间才能“加速”到全部线程数。

@Little Chicken 理解 1 是正确的。

如果使用 10 个线程,并且加速周期为 10 秒,那么 JMeter 将需要 10 秒才能让所有 10 个线程启动并运行。

每个线程将在前一个线程开始后 1 秒开始。

于 2014-05-23T06:41:35.300 回答
6

例如

  1. 1000 个目标线程,1000 秒加速:JMeter 将每秒添加一个用户
  2. 1000 个目标线程,100 秒加速:JMeter 每秒将增加 10 个用户
  3. 1000 个目标线程,50 秒加速:JMeter 每秒将增加 20 个用户
于 2019-03-23T12:39:46.087 回答
4

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

于 2013-06-25T13:00:06.803 回答
1

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

于 2015-05-13T09:56:49.193 回答
1

Ramp up Period:用户将被注册以开始交易的速率。

在 jMeter 中,如果有 10 个用户,如果您将启动时间设置为 20,则每 2 秒将有 1 个用户开始执行计划。

于 2016-05-17T07:14:37.300 回答
1

该属性告诉 JMeter 在启动每个用户之间延迟多长时间。

例如,如果您输入 5 秒的 Ramp-Up Period,JMeter 将在 5 秒结束时完成启动所有用户。因此,如果我们有 5 个用户和 5 秒的 Ramp-Up Period,那么启动用户之间的延迟将为 1 秒(5 个用户 / 5 秒 = 1 个用户/秒)。如果您将该值设置为 0,那么 JMeter 将立即启动您的所有用户。

于 2017-09-09T17:49:19.357 回答
0

当你有 100 个线程时,你可以增加 10 秒。但是如果你的总线程数只有 5 或 10,你必须给 0 加速秒数。因为您的应用程序通常会在准确的一秒内获得 5 次点击。所以请记住这一点。如果您认为有可能在同一秒内获得 10 次点击,则将线程组的 ramp up 设为 0,并给出无限循环并定义持续时间

于 2021-11-22T12:58:40.510 回答