【问题标题】:API load testing, performance testing, Azure API appAPI 负载测试、性能测试、Azure API 应用
【发布时间】:2016-06-29 08:27:40
【问题描述】:

我对测试东西很陌生。

现在我已经在 Azure App Service 上部署了 Spring boot Rest API App

我的 API 所做的是从 2 或 3 个固定客户端 获取请求,这意味着仅对 指定客户端 开放,我的 API 从 Azure 检索数据表存储并给他们回应。

以下是要求

1. 1000 requests per second
2. 200ms for average response time

第一个问题是如何每秒发出1000个请求(我尝试使用JMeter进行测试,但找不到)。

第二个问题是如何衡量或找出我在 Azure 中的 API 应用每秒可以接受多少请求。

如何进行测试?

还有一个问题,我可以说一些用户是固定的,并且说“用户负载”是 2 或 3,而这 2 或 3 个客户端每秒一起发出 1000 个请求。

【问题讨论】:

    标签: api performance-testing load-testing azure-api-apps


    【解决方案1】:

    你需要一个负载测试工具,我推荐以下几个:

    1. SoapUI - API 测试的事实标准,它有 load testing capabilities
    2. Apache JMeter - 多协议负载测试工具can be used for API testing as well,可以在集群模式下运行并提供更好的报告

    两者都是免费和开源的。

    【讨论】:

      【解决方案2】:

      根据您的三个问题,我将尝试解释一下如何使用 JMeter 实现您的这些目标:

      答案 1:

      事务级别的并发可以通过使用Constant Throughput Timer一个JMeter插件来实现。

      来自 BlazeMeter Blog on Timers

      恒定吞吐量计时器可以暂停线程,以便 可以实施面向目标的方案。 以目标为导向的场景是 一种负载测试类型,其目标是不模拟 X 并发 用户,但 每秒 X 个请求。恒定吞吐量计时器有效 精确到“分钟”级别,因此请确保您的测试持续 足够长(1 分钟或更长时间)并且您使用了合理的加速时间 避免尖峰(除非您正在进行某种形式的压力测试)。

      因此,在您的脚本中使用此插件,您将实现您的目标“每秒 1000 个请求”。

      虽然,

      此计时器允许我们保持总吞吐量不变。当然,如果 服务器无法处理这样的负载,吞吐量将是 降低。如果 其他计时器与常量相矛盾,吞吐量可能会降低 吞吐量计时器。虽然计时器被称为常量吞吐量 定时器,吞吐量值不需要是常数。这个值 可以在测试期间更改

      答案 2:

      持续监控测试输出。测试应逐步或逐渐增加Threads or Users并观察输出。如果 @ 中未提供 足够的线程恒定吞吐量计时器 无法实现给定的“每秒吞吐量或请求数” 987654325@。而Target Throughput(in Samples per minute)也逐渐增多。不是第一次测试的目标 1000/s 输入。应该逐渐达到。

      答案 3: 这取决于你的脚本设计。你可以说:

      “用户负载”为 2 或 3,而那 2 或 3 个客户端正在赚取 1000 每秒请求数

      线程级别中的并发可以通过提供大于Ramp-up timeTest Duration来实现.因此,在达到 加速时间 之后,那些 Users or Threads 将是并发的。虽然,需要正确配置 JMeter 组件,否则可能无法达到 并发。您可能会发现 this blog 很有用。

      【讨论】:

      • 感谢您的出色回答!不过一下子就不太容易理解了:)非常感谢!
      • 其实..我可以再问你一个问题吗?
      • 所以整个项目的架构(?)是......实际用户将请求不是我的API“A”和API“B”以及API“A”和“B”将请求API“C”这是我的API,在这种情况下,在API“C”点,只有两个用户(连接)(API“A”和“B”)?我有点困惑......
      • 所以我想知道的是,我的 API 是每秒从两个用户收到 1000 个请求还是我仍然需要测试我有 1000 个用户正在调用我的 API。
      【解决方案3】:

      您可以使用https://loader.io/,这是一项免费的负载测试服务,可让您对具有数千个并发连接的网络应用和 API 进行压力测试。

      【讨论】:

      • 是的,他们的免费试用似乎对我来说已经足够了
      猜你喜欢
      • 1970-01-01
      • 2013-11-10
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 2017-04-08
      • 2010-11-14
      • 2021-09-11
      • 1970-01-01
      相关资源
      最近更新 更多