使用Postman持续更新同步Collection
背景
当我们开发好接口之后一般会用一些接口调试工具来进行测试,比如Postman。这时候可以很方便的通过swagger.json文档快速的导入接口到Postman中并在简单的修改之后就可以方便的开始调试。
但是在项目的不断迭代中,出现一种情况使我们的测试管理工作非常的苦恼。Postman虽然可以支持从swagger.json导入,但是每一次的导入都会生成一个新的Collection,那么我们在之前Collection中做的一些配置不得不重新在新的Collection中配置一遍。非常的不优雅。
那么,是否存在一种方案可以优雅的感知到接口的新增和删除,从而再自动的在Postman中生成对应的接口的方法呢?细微的参数修改暂时不在考虑范围内,因为涉及到参数取值等环境变量的问题,未必自动的就可以处理好。答案是有这么一条路,虽然不是很直接。
准备
在我们操作之前,我们先需要知道一些概念,在Postman中导入swagger.json可以生成两部分内容:Collections和APIs。Collections主要对应的是接口实际请求的配置部分,而APIs主要作用是形成接口文档并进行版本管理。所以我们要借助APIs来实现我们的需求。
步骤
1. 导入swagger.json
swagger.json的类型一定得是OpenAPI 3,否则后面无法进行validate。
导入的时候选择生成Collection,其他配置根据自己情况来。操作成功后Collections和APIs下都会有对应的项目。
2. 添加一个接口,生成新的swagger.json
3. 更新APIs中的定义
打开APIs中的项目,打开Defination标签页。将新的swagger.json复制在右侧文本框中。保存。
4. 更新Collections
继续打开Documentation标签页,点击Validate against Defination或者Validate again。
点击Review issues查看详情,点击复选框选择,再点击确认将修改应用到Collections。完成新增接口到Collections
5. 操作结果
可以看到新增得Delete2已经出现在了Collections中。
补充
操作完成后,可以察觉到新增的接口没有按标签分组,Postman中又无法方便将请求移动到其他的文件夹。
解决方法是将该Collections导出,修改collection.json,重新组织请求的分组,然后重新导入。但是你又发现了这样导入导出很不优雅。
所以这里再推荐一个库[Github]matt-ball/postman-cli可以方便的将Postman的Collection转换为本地代码项目,然后将本地的修改再同步回Postman。