用于 API 测试的 jmeter 指标

问题描述 投票:0回答:1

提供上下文。

在我的组织中,我们正在从 mysql5 -> mysql8 迁移数据库。 他们在 mysql8 中给了我一个虚拟数据库实例,它是带有匿名数据的产品数据库的副本。

从旧的产品数据库收集一些指标后,我们发现以下内容:

  • 平均负载900~每秒查询数(QPS)
  • 最大负载2400~QPS

现在我的任务是从我们托管虚拟数据库的服务器收集性能指标(CPU/平均负载/等...)。我已经有了监控工具。

我必须使用 Jmeter,但没有这方面的经验,所以我更像是一名前端工程师,所以在模拟平均和最大负载时遇到了很多麻烦。 对于线程计数加速周期和循环计数而言更是如此。

我如何使用这 3 个属性来模拟它们? 我已经配置了 HTTP 调用及其百分位数吞吐量。

api jmeter performance-testing jmeter-5.0
1个回答
0
投票
  1. 线程数:取决于您的响应时间,例如,如果单个请求的响应时间为 1 秒,而您过去的 QPS 为 900 - 如果响应时间为 900 个线程(虚拟用户),您应该能够达到此吞吐量更高或更低,您将需要按比例增加或减少线程数

  2. 加速期:通常您应该逐渐增加负载,这样您就能够将增加的负载与增加的响应时间、错误数量、吞吐量等相关联。JMeter 文档建议

    加速周期告诉 JMeter 需要多长时间才能“加速”到所选线程的全部数量。如果使用 10 个线程,并且启动周期为 100 秒,那么 JMeter 将花费 100 秒来启动并运行所有 10 个线程。每个线程将在前一个线程开始后 10 (100/10) 秒启动。如果有 30 个线程且启动周期为 120 秒,则每个连续线程将延迟 4 秒。

    Ramp-up 需要足够长,以避免测试开始时工作负载过大,并且足够短,以便最后一个线程在第一个线程完成之前开始运行(除非有人希望发生这种情况)。

    从 Ramp-up = 线程数开始,然后根据需要向上或向下调整。

    您还可以查看JMeter Ramp-Up period: The Ultimate Guide文章

  3. 循环计数:它需要足够,以便所有线程都能启动并运行。每个 JMeter 线程都颠倒地执行采样器,当没有采样器要执行并且循环迭代时,线程将被关闭,因此如果没有足够的循环,您可能会遇到一个线程已经完成执行请求并且被关闭的情况。关闭,另一台尚未启动。最简单的方法是将其设置为

    Infinite
    -1
    并使用“持续时间”来指定所需的测试运行时间

© www.soinside.com 2019 - 2024. All rights reserved.