1

线程组中的持续时间

jmeter线程组中的持续时间是什么意思。

我发现这是官方文件说的是结束时间,而启动延迟是开始时间。

但这是我们开始执行测试以来的结束时间吗?还是因为创建了线程?

第一个时间戳

线程 50

当我设置50个线程和持续时间1s时,输出文件中的第一个时间戳是1607391972250(2020-12-08 09:46:12.25),线程50只发送时间戳1607391973232(2020-12-08)中的HTTP请求1 09:46:13.232)。所以它不可能是结束时间,因为每个线程都被创建了

但是当我设置1000个线程时,最后几个线程的时间戳会比第一个线程的第一个请求的时间戳超过1s。它不能是我们开始执行测试以来的结束时间

那么持续时间的真正含义是什么?

4

2 回答 2

1

持续时间既不是开始时间也不是结束时间,而是两者之间的时间跨度。如果您的总持续时间为 1 秒,而您的加速时间为 1 秒,则可能会导致一些混乱,因为某些线程只是在整个测试结束时才开始。当您在 GUI 中点击“播放按钮”或通过命令行开始测试时,持续时间开始计算。如果您的测试计划中有多个线程组,并且出于任何一种逻辑原因(例如线程组 A 生成论坛帖子而组 B 开始搜索这些论坛帖子),启动延迟将主要是有意义的1 分钟后)或某种负载整形(尽管可能在一个线程组内实现)。这是相对于测试开始的。

无论如何,JMeter 是一个主要用于负载和性能测试的工具。在这种类型的测试中,您通常会让测试运行几分钟或几小时。因此,从我的角度来看,您的问题主要是理论上的,除非您想实现一些非常具体的东西,而您没有进一步详细说明。

于 2020-12-08T08:51:29.590 回答
0

根据线程组文档:

  • 指定线程生命周期如果选中,则将线程操作时间限制在给定的范围内

  • 持续时间(秒)如果选择了调度程序复选框,则可以选择相对结束时间。JMeter 将使用它来计算结束时间。

因此“持续时间”限制了给定单个线程的最大持续时间,JMeter 在 Ramp-Up 周期的范围内启动线程。

在您的情况下,您将 Ramp-Up 时间设置为 1 秒,将 Duration 设置为 1 秒,这意味着 JMeter 将在 1 秒内启动 50 个线程(因此最后一个线程将在测试开始后 1 秒内启动),然后是最后一个线程将在另外 1 秒内终止,因此它的总生命周期加上执行第一个采样器所需的时间(如果其响应时间超过 1 秒)

您可能会发现自定义线程组更易于使用,它们都提供了易于配置的可视化方式来定义工作负载,您可以使用JMeter 插件管理器安装它们

在此处输入图像描述

于 2020-12-08T13:08:56.443 回答