API负载测试,性能测试,Azure API应用

时间:2016-06-29 08:27:40

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

我非常擅长测试。

现在我已在 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应用每秒可以采取的请求数量。

我如何接受测试?

还有一个问题,我可以说一些用户是固定的并说'#34;用户加载"是2或3,那些2或3个客户端每秒发出1000个请求。

3 个答案:

答案 0 :(得分:2)

您需要一个负载测试工具,我建议您使用以下工具:

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

答案 1 :(得分:2)

根据您的三个问题,我将尝试解释一下如何使用 JMeter 来达到您的目标:

回答1:

使用Constant Throughput Timer JMeter插件可以达到事务级别的并发性

来自BlazeMeter Blog on Timers

  

常量吞吐量计时器可以按顺序暂停线程   可以实施面向目标的方案。 面向目标的方案是   一种负载测试类型,其中目标不模拟X并发   用户,但每秒X次请求。恒定吞吐量计时器工作   正好在“分钟”级别,所以请确保您的测试持续   足够长(1分钟或更长),你使用合理的加速时间   避免尖峰(除非你正在进行某种形式的压力测试)。

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

虽然,

  

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

回答2:

持续监控测试输出。测试应该通过逐步或逐步增加 Threads or Users 来完成,并且应该观察输出。 恒定吞吐量计时器无法在 {中提供足够的线程时达到给定的“吞吐量或每秒请求数” {1}} 即可。并且 Thread Group 也会逐渐增加。不是第一次测试的目标 Target Throughput(in Samples per minute) 输入。它应该逐渐达成。

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

  

“用户加载”是2或3,那些2或3个客户端是1000   每秒请求

1000/s 大于 Test Duration可以达到线程级中的并发性 即可。因此,在达到加速时间后, Ramp-up time 将会同时发生。但是,需要正确配置JMeter组件,否则可能无法达到并发性。您可能会发现this blog很有用。

答案 2 :(得分:0)

您可以使用免费加载测试服务https://loader.io/,该服务可让您对网络应用进行压力测试。 apis有数千个并发连接。