如何在apache基准测试工具中限制每秒请求数

时间:2017-04-06 13:27:37

标签: spring qa stress-testing

我试图对我的Spring Boot应用程序进行压力测试,但是当我运行以下命令时,ab正在做的是尝试给出一个结果,即我的应用程序可以保存的最大值。但我需要检查我的应用程序是否可以按每秒特定请求保留。

ab -p req.json -T application/json -k -c 1000 -n 500000 http://myapp.com/customerTrack/v1/send

上面命令给出的每秒请求数是4000,但实际上,我的应用程序中缓存了很多记录,这意味着它不能保持那么多的rps。 有人可以告诉我如何在 ab 工具中每秒设置一个特定请求吗?谢谢!

2 个答案:

答案 0 :(得分:3)

我认为您无法从Ab中得到想要的东西。还有很多其他工具。

这是一个简单的程序,可以完全满足您的要求。

https://github.com/rakyll/hey

对于将速率限制为每秒100个请求,以下命令应该起作用。

hey -D req.json -T application/json -c 1000 -q 100 -n 500000 http://myapp.com/customerTrack/v1/send

答案 1 :(得分:2)

Apache Bench是单线程程序,只能利用客户端计算机上的一个处理器。在极端情况下,如果测试的参数超出工具运行环境的能力,则该工具可能会歪曲结果。根据您的描述,rps已经达到了硬件限制。

  

我的应用程序中缓冲了很多记录,这意味着它不能容纳那么多rps

很难在一台机器上每秒控制请求。 您可以在这里HTTP(S) Benchmark Tools

找到性能更好的痤疮测试工具

如果您有预算,可以尝试goad,它是AWS Lambda支持的,高度分布式的负载测试工具,内置于Go中,用于2016 Gopher Gala。 Goad允许您在全球范围内对网站进行负载测试,同时通过在多个地区同时使用AWS Lambda来花费一分钱的微小费用。