【发布时间】:2020-07-16 23:46:24
【问题描述】:
如何在 Jmeter 中以 100 个并发用户每分钟发送 3000 个请求?
我们可以寄吗?
线程数:100 加速期:1 循环:30
或任何其他方法?
【问题讨论】:
-
您的测试持续时间是多少?你想控制这些请求(3000/min = 50/s)一段时间吗?如果有,需要多少时间?
标签: jmeter
如何在 Jmeter 中以 100 个并发用户每分钟发送 3000 个请求?
我们可以寄吗?
线程数:100 加速期:1 循环:30
或任何其他方法?
【问题讨论】:
标签: jmeter
您要执行的操作在很大程度上取决于您发送的请求的响应时间以及线程下的请求数。
例如,通过配置,您建议我们可以预期几种结果。
100 加速周期:1 循环:30
你可以有不同的配置来满足你的需要,一些解决方案可能有一些缺点。
如果你真的需要使用 100 个线程,来生成每分钟 3000 次点击的负载, 您需要执行以下操作。
但问题在于控制请求发送频率。在这种情况下,如果您计划以每分钟 3000 次点击的负载监控服务器行为,则此方法将起作用。如果您在一个线程中有多个请求。这些请求将按顺序执行(在大多数实际场景中,这些请求是相互依赖的)。在循环中,要开始一个新的循环,应该发送线程中的当前请求。
通过上述行为,我们无法实现每分钟 3000 个请求的线程频率。所以我们必须对请求的响应。为此,请移至 HTTP 请求采样器的高级选项卡。并将响应超时更改为 1ms
现在会发生的是,一旦发送请求,JMeter 将只等待 1 毫秒的响应。并且将开始在线发送下一个请求,这意味着我们可以创建一个每分钟可以处理 3000 个请求的频率。这样一来,您的所有请求很可能都会出现“超时”错误,但您的服务器会被点击。如果您的线程有依赖于先前请求的请求,则此设置将不适合您。这就是我不推荐它的原因。
注意: 如果您想以每分钟 3000 的频率向服务器发送命中。我的建议是使用一个
例如,1000 个线程、10 个 Rampup 20 循环以及 3000 次命中/分钟的恒定吞吐量计时器将帮助您生成所需的负载。但是如果你想坚持使用 100 线程选项,我们必须减少响应超时时间并控制请求频率
【讨论】:
如果您需要每分钟发送 3000 个请求,则意味着您需要每秒发送 50 个请求。
相关的Thread Group 配置为:
为了将 JMeter 的吞吐量限制为每秒 50 个请求,最简单的选择是使用 Throughput Shaping Timer
另外请注意,在上述设置下,只有当您的应用程序响应时间为 2 秒或更短时,您才能每秒发送 3000 个请求,如果更长 - 您将需要增加线程组中的线程数由于吞吐量整形定时器只能暂停线程,如果当前数量不足以达到/维持所需的负载,它不会启动额外的线程。
【讨论】: