【问题标题】:API performance testing-Calculating threads(Users) in JMeterAPI性能测试-JMeter中计算线程(用户)
【发布时间】:2018-03-13 18:03:24
【问题描述】:

我正在测试 10 个 Web 服务 (REST),要求以每个服务每秒 30 个请求对每个服务进行负载测试。因此,我预计所有 10 项服务每秒有 300 个请求。所有这 10 项服务都由一个物理用户帐户(即只有一个物理用户 ID 和密码)访问,我没有任何其他帐户。

满足上述 30 Requests/Second/Service & 300 Requests/Second/10Services 的要求; 1 小时测试时间:

  1. 我需要在 JMeter 中创建多少个线程(用户)?请给我计算它的公式?
  2. 需要添加多少负载生成器?
  3. 我应该考虑哪些其他参数?

我已经提到了以下网站,但没有任何关于 web 服务的 avl:

【问题讨论】:

  • 任何人都可以回答此类通用问题的最佳答案是通用答案: 1. 公式为:N * 1.1 其中N= 每个服务每秒产生 30 个请求的所需吞吐量的用户数。该数字应通过测试(试运行)确定。为了确定,我们将这个数字增加了 10%。 2.允许上一个答案中的N用户运行的最小数量。 3. 您需要考虑与您的应用相关的所有参数。

标签: jmeter performance-testing load-testing jmeter-3.2 jmeter-4.0


【解决方案1】:
  1. 根据How do I Correlate the Number of (Concurrent) Users with Hits Per Second文章:

    1 个样本,1 个线程,1 秒延迟 +(假设)2 秒加载页面的响应时间 = 3 秒请求之间的总延迟 = 线程每 1 分钟执行 20 次 = 0.33 Hits/s

    如您所见,每秒的点击次数取决于两个因素:

    1. 线程数(虚拟用户)
    2. 应用程序的响应时间

    例如,如果您的应用程序响应时间是 1 秒 - 使用 30 个用户就足够了,如果是 2 秒 - 您将需要 60 个用户,等等。

    “好的”做法是从 1 个线程(虚拟用户)开始,然后逐渐增加负载,直到达到所需的吞吐量(或开始发生错误,无论先发生什么)

    另一种方法是从您的服务的预期用户数量开始,并准确地模拟每个用户,这样工作量就可以切合实际。

  2. 假设您每秒最多需要执行 300 个请求,我相信单个 JMeter 实例就足够了。只要确保您关注JMeter Best Practices

  3. 我想不出您可能需要任何额外的参数,如果您需要为每个服务实现每秒 30 个请求,我会选择 Concurrency Thread GroupThroughput Shaping Timer 组合。您可以使用JMeter Plugins Manager 安装两者

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    相关资源
    最近更新 更多