我非常擅长测试。
现在我已在 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个请求。
答案 0 :(得分:2)
您需要一个负载测试工具,我建议您使用以下工具:
两者都是免费和开源的。
答案 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有数千个并发连接。