【问题标题】:How to send 3000 requests with 100 Concurrent user in Jmeter?如何在 Jmeter 中以 100 个并发用户发送 3000 个请求?
【发布时间】:2020-07-16 23:46:24
【问题描述】:

如何在 Jmeter 中以 100 个并发用户每分钟发送 3000 个请求?

我们可以寄吗?

线程数:100 加速期:1 循环:30

或任何其他方法?

【问题讨论】:

  • 您的测试持续时间是多少?你想控制这些请求(3000/min = 50/s)一段时间吗?如果有,需要多少时间?

标签: jmeter


【解决方案1】:

您要执行的操作在很大程度上取决于您发送的请求的响应时间以及线程下的请求数。

例如,通过配置,您建议我们可以预期几种结果。

100 加速周期:1 循环:30

  • 我们将在测试开始时增加 100 个线程
  • 它们将循环 30 次
  • 只有在线程组下有一个请求时,您才会有 3000 次点击
  • 例如,如果请求的响应时间为 2 秒。如果加速为 0,完成运行至少需要 (30*2 = 60) 秒。但响应时间可以更低更高。考虑到这一点,我们不能指望在 100 个线程循环 30 次的情况下每分钟产生 3000 个负载。

你可以有不同的配置来满足你的需要,一些解决方案可能有一些缺点。

如果你真的需要使用 100 个线程,来生成每分钟 3000 次点击的负载, 您需要执行以下操作。

  1. 您必须控制吞吐量
  2. 您必须控制请求发送频率(发送请求而不等待响应

控制吞吐量不是问题。您可以简单地使用恒定吞吐量计时器

但问题在于控制请求发送频率。在这种情况下,如果您计划以每分钟 3000 次点击的负载监控服务器行为,则此方法将起作用。如果您在一个线程中有多个请求。这些请求将按顺序执行(在大多数实际场景中,这些请求是相互依赖的)。在循环中,要开始一个新的循环,应该发送线程中的当前请求。

通过上述行为,我们无法实现每分钟 3000 个请求的线程频率。所以我们必须对请求的响应。为此,请移至 HTTP 请求采样器的高级选项卡。并将响应超时更改为 1ms

现在会发生的是,一旦发送请求,JMeter 将只等待 1 毫秒的响应。并且将开始在线发送下一个请求,这意味着我们可以创建一个每分钟可以处理 3000 个请求的频率。这样一来,您的所有请求很可能都会出现“超时”错误,但您的服务器会被点击。如果您的线程有依赖于先前请求的请求,则此设置将不适合您。这就是我不推荐它的原因。

注意: 如果您想以每分钟 3000 的频率向服务器发送命中。我的建议是使用一个

  • 恒定吞吐量计时器
  • 增加线程数和循环数,以每分钟创建超过 3000 个请求

例如,1000 个线程、10 个 Rampup 20 循环以及 3000 次命中/分钟的恒定吞吐量计时器将帮助您生成所需的负载。但是如果你想坚持使用 100 线程选项,我们必须减少响应超时时间并控制请求频率

【讨论】:

    【解决方案2】:

    如果您需要每分钟发送 3000 个请求,则意味着您需要每秒发送 50 个请求。

    相关的Thread Group 配置为:

    为了将 JMeter 的吞吐量限制为每秒 50 个请求,最简单的选择是使用 Throughput Shaping Timer

    另外请注意,在上述设置下,只有当您的应用程序响应时间为 2 秒或更短时,您才能每秒发送 3000 个请求,如果更长 - 您将需要增加线程组中的线程数由于吞吐量整形定时器只能暂停线程,如果当前数量不足以达到/维持所需的负载,它不会启动额外的线程。

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      相关资源
      最近更新 更多