Jmeter - 计算 Ramp-up 周期
Jmeter - Calculating Ramp-up period
我正在尝试每分钟向我的 API 端点发送 1100 个请求,持续 5 分钟,所以总共我将向端点发出 5500 个请求。
根据以上要求,我是这样设置我的Jmeter的:
似乎我配置错误的 Jmeter,因为最后我可以看到 Jmeter 向 API 而不是 5500 发出了 8401 请求.
我在配置中遗漏了什么?
“无限”check-box需要勾选还是不勾选?
I am trying to send 1100 requests per minutes to my API endpoint for a period of 5 minutes, so in total I will make 5500 requests to the endpoint.
我不知道你是怎么得出这个 5500
数字的,但这不是很正确。
您的设置意味着:
- JMeter 将每秒添加 18 个虚拟用户,持续 60 秒
- 60 秒后,JMeter 将 运行 1100 个用户再持续 4 分钟
JMeter 能够发出的请求总数主要取决于应用程序响应时间。
如果您想将 JMeter 的吞吐量限制为每分钟 1100 个请求,请考虑使用 Constant Throughput Timer or Precise Throughput Timer
如果您不想限制 JMeter 的吞吐量但又想执行 5500 次:
- 将 "Loop Count" 设置为 5(但那样的话您可能无法获得 1100 个并发用户)
- 或者在
Total Executions
模式下使用 Throughput Controller 这样 JMeter 将在执行 5500 个请求后停止
您预期的此测试计划的请求数(即 5500)错误。
按照您的预期,我认为您混淆了线程和请求。
Ramp up 是所有用户到达您测试的应用程序服务器的时间。
请求是采样器模拟的,线程是用户模拟的。
根据您的测试计划:
- Total Number of Threads: 1100 vitual users
- Ramp-up time: 60 (1 min)
- Loop count: Infinite
- Test duration: 300 sec (5 min)
- No of requests/sampler in Test Plan: Unknown, assuming it 1
JMeter 执行:
JMeter 将根据启动时间在 60 seconds
中启动那 1100 个虚拟用户。因此,在测试的第一分钟内,(1100/60)~ 18
用户将每秒处于活动状态。每个 thread/user 将执行您在测试计划层次结构中定义的请求或采样器。由于您已将循环计数定义为 infinite
,每个线程将重复执行请求,直到测试完成。 60 秒后,您的所有 1100 名用户都将在剩余的 4
分钟内积极点击这些 samplers/requests。
因此您可以通过 JMeter 发出的请求总数取决于您的应用程序响应时间。
如果您的请求的平均响应时间是 1 second (assuming you have only 1 requests in your test plan)
,那么您将能够在最后 4 分钟(当您的 1100 个用户都处于活动状态时)达到总计 264000 (264000/240 = 1100 requests per second)
测试。您还可以使用 Active Threads Over Time and Hits Per Second 听众相应地验证这一点。
因此,请仔细检查您的应用程序的平均响应时间或您在测试计划中使用的requests/samplers。
如果您想将 JMeter 的吞吐量控制在 1100 per minute
,您可以在测试计划级别使用 Constant Throughput Timer 并使用 target throughput value as 1100
.
不要忘记在测试持续时间中添加 ramp-down time
的计数。是的,当你加速时,即在第一分钟,通常你会在线程启动时收到更多请求。在你的情况下,你的测试持续时间应该是 7 mins (60 seconds for the ramp-up 1100 users + 300 seconds for 5500 requests + 60 seconds for the ramp down for 1100 users)
.
您还可以查看此线程了解更多信息:。
Please note- The total number of requests is related to throughput, Whereas the number of active threads performing the same activity is related to concurrency.
我正在尝试每分钟向我的 API 端点发送 1100 个请求,持续 5 分钟,所以总共我将向端点发出 5500 个请求。
根据以上要求,我是这样设置我的Jmeter的:
似乎我配置错误的 Jmeter,因为最后我可以看到 Jmeter 向 API 而不是 5500 发出了 8401 请求.
我在配置中遗漏了什么?
“无限”check-box需要勾选还是不勾选?
I am trying to send 1100 requests per minutes to my API endpoint for a period of 5 minutes, so in total I will make 5500 requests to the endpoint.
我不知道你是怎么得出这个 5500
数字的,但这不是很正确。
您的设置意味着:
- JMeter 将每秒添加 18 个虚拟用户,持续 60 秒
- 60 秒后,JMeter 将 运行 1100 个用户再持续 4 分钟
JMeter 能够发出的请求总数主要取决于应用程序响应时间。
如果您想将 JMeter 的吞吐量限制为每分钟 1100 个请求,请考虑使用 Constant Throughput Timer or Precise Throughput Timer
如果您不想限制 JMeter 的吞吐量但又想执行 5500 次:
- 将 "Loop Count" 设置为 5(但那样的话您可能无法获得 1100 个并发用户)
- 或者在
Total Executions
模式下使用 Throughput Controller 这样 JMeter 将在执行 5500 个请求后停止
您预期的此测试计划的请求数(即 5500)错误。
按照您的预期,我认为您混淆了线程和请求。
Ramp up 是所有用户到达您测试的应用程序服务器的时间。
请求是采样器模拟的,线程是用户模拟的。
根据您的测试计划:
- Total Number of Threads: 1100 vitual users
- Ramp-up time: 60 (1 min)
- Loop count: Infinite
- Test duration: 300 sec (5 min)
- No of requests/sampler in Test Plan: Unknown, assuming it 1
JMeter 执行:
JMeter 将根据启动时间在 60 seconds
中启动那 1100 个虚拟用户。因此,在测试的第一分钟内,(1100/60)~ 18
用户将每秒处于活动状态。每个 thread/user 将执行您在测试计划层次结构中定义的请求或采样器。由于您已将循环计数定义为 infinite
,每个线程将重复执行请求,直到测试完成。 60 秒后,您的所有 1100 名用户都将在剩余的 4
分钟内积极点击这些 samplers/requests。
因此您可以通过 JMeter 发出的请求总数取决于您的应用程序响应时间。
如果您的请求的平均响应时间是 1 second (assuming you have only 1 requests in your test plan)
,那么您将能够在最后 4 分钟(当您的 1100 个用户都处于活动状态时)达到总计 264000 (264000/240 = 1100 requests per second)
测试。您还可以使用 Active Threads Over Time and Hits Per Second 听众相应地验证这一点。
因此,请仔细检查您的应用程序的平均响应时间或您在测试计划中使用的requests/samplers。
如果您想将 JMeter 的吞吐量控制在 1100 per minute
,您可以在测试计划级别使用 Constant Throughput Timer 并使用 target throughput value as 1100
.
不要忘记在测试持续时间中添加 ramp-down time
的计数。是的,当你加速时,即在第一分钟,通常你会在线程启动时收到更多请求。在你的情况下,你的测试持续时间应该是 7 mins (60 seconds for the ramp-up 1100 users + 300 seconds for 5500 requests + 60 seconds for the ramp down for 1100 users)
.
您还可以查看此线程了解更多信息:
Please note- The total number of requests is related to throughput, Whereas the number of active threads performing the same activity is related to concurrency.