如何测试服务器性能

How to test server performance

我如何准确地测试服务器性能API?

让我们这样说 API:https://test.com/new_task。这是一个 POST 请求,需要 body 中的某些数据。现在我如何测试它并知道服务器的最大容量(同时请求的数量)?

我尝试在 Postman UI 中搜索,但我没有找到任何用于此目的的选项。是否有专门为此开发的软件或应用程序?

Postman 无法并行发送请求,对于指定的迭代次数,您最多可以按顺序实现 running your request/collection

你可以考虑切换到即SoapUI which has some load testing capabilities(虽然相当有限)

最好的选择是将您的 Postman 请求(或 collection)转换为负载测试工具测试计划,例如 Apache JMeter 非常强大。

为了将您的 Postman 请求(或 collection)转换为 JMeter 测试计划:

  1. Install JMeter

  2. 启动 JMeter 的 HTTP(S) Test Script Recorder

  3. 如果您的请求使用HTTPS protocol - import JMeter's self-signed certificate into Postman

  4. Configure Postman to use JMeter as the proxy

  5. 运行 您在 Postman 中的请求(或 collection)

  6. JMeter 将捕获请求并创建相关的 HTTP 请求采样器和 HTTP Header 管理器

  7. 完成后,您可以在线程组中increase the number of threads(虚拟用户)并运行您的请求并行。

更多信息:How to Convert Your Postman API Tests to JMeter for Scaling

API 负载测试的一个简单解决方案 是使用 SoapUI(如果您有许可证,则使用 ReadyAPI):

  1. 根据自己的需要制作测试用例(简单复杂均可)
  2. 创建负载测试(单击)
  3. 设置并行线程数以及何时完成负载测试(及时或测试运行)。
  4. 执行测试并查看统计数据。

在 SoapUI 5.6 中,我可以使用数百个线程。如果您需要更多(500+、数千或更多)您的计算机性能可能是极限。在那种情况下,JMeter 可能是一个不错的选择。

更多关于 load testing is in SoapUI documentation

是我的选择。

但是,我要补充一点,“最大容量”并非完全黑白分明,您可能想要查看服务器上的资源利用率,以及您在 JMeter 测试中看到的响应时间。

具体来说,“服务器速度慢,但有响应”、“服务器速度慢得令人无法接受,但有响应”和“服务器没有响应”之间是有区别的。响应时间的分布也不均匀。

我建议就可接受的响应时间(例如 1 秒)达成一致,并使用 JMeter 的“第 90 个百分位数”测量来查看您在何种负载级别违反了该响应时间。这就是您的服务器实际上达到最大容量的时间点,即使它仍在响应。