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

cod*_*nja 5 automated-tests swagger postman web-api-testing

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

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

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

Mar*_*rey 5

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

  1. 将旧请求导出到集合文件 2.0 或更高版本
  2. 以相同的方式导出您的新收藏
  3. 合并两个 JSON 文件。
  4. 将新文件导入回 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);
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)


A.J*_*oly 0

我很感兴趣是否有一个自动流程,但恐怕它不存在。您必须将 JSON 作为副本导入(这是由 Postman 提议的,因为您的集合已经存在),然后复制新请求并将它们集成到您当前的集合中。如果发生大量更新,这可能会很痛苦。

以 JSON 格式导出当前集合,使用 diff 工具比较两个文件以便在一些操作中添加新请求,然后重新导入您自己的 JSON 文件可能更现实......这就是我要做的。

亚历克斯