【问题标题】:How to appropriately test a full REST API with JMeter如何使用 JMeter 适当地测试完整的 REST API
【发布时间】:2022-01-02 21:55:46
【问题描述】:

我目前正在尝试第一次使用 JMeter 对 REST API 进行负载测试。我遵循了一些教程,并认为我了解 JMeter 的基本工作原理。

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

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

【问题讨论】:

  • 我怀疑这样一个模糊的问题是否有一个普遍的答案。你们提供什么样的服务?您的 API 是否有处理操作的顺序?您想模拟真实用例来寻找瓶颈吗?或者您是否怀疑某个特定端点是瓶颈并想要对其进行故障排除?
  • 我的 api 连接到 mongodb 和 hyperledger fabric 网络,用于锚定交易。主要目标是找到这个api可以支持多少负载,主要是多少tps。主要的 api 端点是这样工作的:用户发布一些信息,api 进行一些计算,然后将数据保存在数据库中,并调用区块链来锚定数据。最后,api 发送响应。就是区块链交易验证需要时间。因此,另一个 api 端点发送事务状态(也需要验证时间)。

标签: java spring api rest jmeter


【解决方案1】:

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

通常,您应该了解真实用户(或其他应用程序)将如何使用 API。您的测试应尽可能地模拟预期的使用情况,最好是 100% 的准确度。

  1. 如果 API 是像 weather API 或类似的独立产品,我将首先单独测试每个端点,然后进行集成测试,当所有端点将与现实生活中的分布同时访问时(即天气请求的数量伦敦的天气请求数量将远高于撒哈拉的天气请求数量)
  2. 如果应用程序frontend 通过AJAX 请求使用API​​,您应该以与真实浏览器相同的方式调用端点,在这种情况下,您需要使用Parallel Controller 之类的解决方案)李>

关于“其他建议”,它们非常简单:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多