如何使用 JMeter 适当地测试完整的 REST API

How to appropriately test a full REST API with JMeter

我目前正在尝试首次使用 JMeter 对 REST API 进行负载测试。我学习了一些教程并认为我了解 JMeter 工作原理的基础知识。

现在我想知道负载测试 API 的最佳方式是什么。我是否应该一次加载测试一个 http 请求(单独或在后台与其他 http 请求测试一起)。或者我应该对 API.

的所有 http 请求进行负载测试

我也很想获得有关负载测试 REST API 的其他建议,这将非常有帮助。

这取决于产品和您进行的测试类型。

通常您应该对 API 将如何被真实用户(或其他应用程序)使用有一个设想。您的测试应该尽可能地模仿预期的用法,最好是 100% 准确。

  1. 如果 API 是像 weather API 或类似的独立产品,我将首先单独测试每个端点,然后在所有端点将与实际分布同时访问时进行集成测试(即伦敦的天气请求数量将远高于撒哈拉的天气请求数量)
  2. 如果 API 正在被应用程序使用 frontend via AJAX requests you should call the endpoints in the same manner as real browser does, in this case you will need to use solution like Parallel Controller)

关于“其他建议”很简单:

  • 如果您有 NFR or SLA - run a load test 并检查 KPI 是否符合这些 NFR 或 SLA
  • 如果没有并且需要找到第一个瓶颈 - 运行 a stress test(从 1 个用户开始,逐渐增加负载,直到达到饱和点或错误开始发生,无论先到什么)