automated-tests - 当开发人员将新请求更新到 api 时,如何更新 Postman 集合

标签 automated-tests swagger postman web-api-testing

我在 Swagger 中有我的 API 文档,它们有不同的端点或请求。
我用了 swagger.json从我的 API 在 Swagger 中链接以将它们作为集合导入 Postman,然后在那里添加测试用例。

但我对一件事感到困惑,如果开发人员向 API 添加更多请求,我如何在不影响测试用例的情况下导入新请求。

例如:
在一种情况下,我有一个包含 65 个请求的 API,我从 Swagger UI 导入并编写了测试用例。
然后几天后,我使用相同的链接导入,请求数量更改为 69,这意味着添加了 4 个新请求,但 Postman 用测试用例替换了整个集合。

最佳答案

正如在 related question 中发布的那样, 没有直接的解决方案 目前。您现在所能做的就是合并 Postman 之外的请求。毕竟,Postman 集合实际上只是 JSON 数据,可以这样操作。

  • 将旧请求导出到集合文件 2.0 或更新版本
  • 以相同的方式导出您的新集合
  • 合并两个 JSON 文件。
  • 将新文件导入回 Postman。

  • 我为第 3 步制作了一个简单的手动助手(请参阅下面的代码),但它可以使用您喜欢的脚本语言轻松实现自动化。步骤 1、2 和 4 可以通过 Newman 自动化.

    function execute() {
      collection = JSON.parse($(".collection").val());
      swagger = JSON.parse($(".swagger").val());
      result = JSON.stringify($.extend(true, {}, swagger, collection));
      $(".result").val(result);
    }
    <html><body>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <br>Collection: <br> <textarea class="collection"></textarea>
      <br>Swagger: <br> <textarea class="swagger"></textarea>
      <br>Result: <br> <textarea class="result"></textarea>
      <br>
      <button onClick="execute()">EXECUTE</button>
    </body></html>

    关于automated-tests - 当开发人员将新请求更新到 api 时,如何更新 Postman 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45884018/

    相关文章:

    java - 如何使用 selenium 检查链接是否处于 Activity 状态

    java - TestNG @Factory 优先级

    python - Django Rest Framework 是否有第三方应用程序来自动生成 swagger.yaml 文件?

    c# - .NET Core 2.0 Web API 中的 BSON

    testing - 如何在 Postman 测试中找到响应 cookie 名称?

    java - PhantomJS 的 Java 等价物是什么?

    asp.net-core - Swagger 将 IFormFile 参数列为类型 "object"

    json - Swagger 在本地运行但不在 IIS 上运行,不解析基本路径

    java - 将 RequestBody 解析为 params