Jmeter HTTP 请求:它是如何工作的

Jmeter HTTP Request: how it really works

到目前为止,我已经执行了几个 Jmeter 测试。我的测试计划非常基本。我在 mac 环境中使用 Jmeter 5.2。

Number of threads: 500
Ramp-up period: 1
Loop count 3
[x] Same user on each iteration
[ ] Delay thread creation until needed
[ ] Specify thread life time

基本上根据我上面的配置,测试将在我的 JVM 中生成 500 个不同的线程,而此负载测试是 运行。

为了创建500个线程,Jmeter只有1秒的时间限制。因此,从我开始测试的那一刻起,它会在每 0.002 秒内创建一个线程。

我只是通过具有有效负载的 HTTP POST 请求访问已部署的公开可用服务。

现在我真正的问题

Jmeter发送的第一个请求可能会在0.2秒(200ms)内得到服务器的响应。从那一刻起,那个线程发生了什么?之后这个线程会被杀死吗?

Ramp up period 不会停止线程,如果达到持续时间,设置 Duration 将停止(/kill)线程,

每个线程独立执行直到完成他的最后一个循环,

因此在您的情况下,每个线程将在 ~0.6 秒后结束(每个请求 0.2 秒 * 3 个循环)

  1. It is possible that the very first request that Jmeter sends will get the response from the server in just 0.2 seconds(200ms) - 是的,可能会更少,问题是你的应用程序是否可以在 200 毫秒或更短的时间内响应

  2. What happens to that thread from that moment? Will this thread being killed after that? - 特别是如果没有更多采样器执行线程,您的设置将再执行此 HTTP 请求采样器 2 次,之后它将是 要求停止。

您可以增加 JMeter logging verbosity to whatever level of details you want and inspect jmeter.log file 以了解 JMeter 的幕后情况。无需任何配置调整即可获得基本详细信息: