【问题标题】:Need to 2350 users per second in JmeterJmeter每秒需要2350个用户
【发布时间】:2016-02-04 08:35:28
【问题描述】:

我的任务是对需要每秒响应 2350 个用户的应用程序进行负载测试。为此,我在 Jmeter 中为我们设置了类似的内容:

我添加了一个线程组。我已经设置了: 线程数(用户):2350 加速期:1 秒 循环次数:1

它会解决我对 2350 个用户的应用程序进行负载测试的目的吗??

【问题讨论】:

  • 您确定需要 2350 个用户还是需要每秒测试 2350 个请求?就像 Dmitri T 说的那样,您可能有 2350 个用户登录您的应用程序,但这并不意味着他们同时在敲击服务器。另一方面,某些客户端调用可能不仅仅是服务器上的一个请求。例如:我正在加载一个游戏,当它登录时它会同时向服务器询问我的待处理游戏列表、我的朋友列表和我的个人资料。

标签: performance jmeter


【解决方案1】:

会的。但前提是每个虚拟用户的响应时间等于 1 秒。

有两种常见的加载模式,要实现这两种模式,您需要Timers

  1. 实际上,您可能不需要多达 2350 个线程来模拟 2350 个用户,因为现实生活中的用户不会不停地敲击服务器,他们需要一些时间在请求之间进行思考。除了页面加载时间也需要考虑。

    假设您有 2350 个用户。每个用户每 15 秒执行一次操作。页面加载时间为 5 秒。所以每个用户每分钟可以访问服务器 3 次。因此 2350 个用户每分钟会产生 7050 个请求,即每秒 117.5 个请求。如果这是您正在寻找的内容,请考虑添加 Constant Timer 或 Uniform Random Timer

  2. 如果您需要模拟每秒 2350 个请求,而不是用户,则需要稍微不同地处理它。有 2 个计时器旨在设置精确的“吞吐量” - 每个时间单位的请求数。它们是:

【讨论】:

    【解决方案2】:

    您描述的设置只创建了 2350 个并行用户(2350 个单独的连接),但不能保证每个线程都将在 1 秒内准确完成。加速期 - 所有线程开始发送请求的速度。因此,在您描述的情况下,Jmeter 将执行以下操作:

    1. 创建 2350 个单独的线程。
    2. 第一个和最后一个线程启动之间的差异将是 1 秒(大约)。
    3. 每个线程只会执行一次(循环计数)。

    对于需要持续一段时间的特定吞吐量的实际场景,最好使用恒定吞吐量计时器。它控制线程发送的请求数量,并在需要满足您定义的值时更改请求之间的延迟。因此,您的实际吞吐量并不真正取决于线程(用户)的总数。有时更少的用户可以更快地发送请求(取决于您的应用程序)。

    要在运行时控制您的吞吐量,只需将摘要报告添加到您的测试计划中。

    此外,对于这种特定场景(2350 个用户),在 1 秒内生成如此多的请求可能很困难。在这种情况下,您需要对一些 Jmeter 从站和 1 个主站使用分布式负载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      • 2021-06-01
      • 2021-08-12
      相关资源
      最近更新 更多