最近用postman探索接口自动化,发现里面的APIs这个模块,很少用到,平常都是直接在Collections模块创建请求就完事了。但是想做自动化时,发现需要先把接口定义出来,基于接口创建用例,这样直接用Collections就显的很不方便,于是,研究了一下APIs的用法。
APIs模块,可以对API进行定义,基于API,创建测试集合,进行测试。
官方文档:Generating server code | Postman Learning Center
填写API名称和版本。
Defining an API Specification | Postman Learning Center
在API定义页面,对API进行定义。
document页面为API文档。
使用这个模块,可以基于API创建服务端的代码。
选中接口版本,点击code generation
选择语言如Java/Python
点击generate code,即可生成zip文件。
我这里基于示例API生成了一个Python代码,可以看到,这里基于route,请求方法,创建了一个获取宇宙飞船id的方法。
在这个模块,可以基于API tests创建集合Collection,也可以进行CICD持续集成。
可以添加新的或者已存在的test
1、创建新的test-输入名字,并进行配置。
创建之后,会生成一个Collection
并且这个测试会链接在对应API下面
2、选择存在的test
直接选择已存在的Collection添加为这个API的test
进行CI集成
CI Integrations | Postman Learning Center
看着没什么用,有兴趣自行研究。
部署 API 概述|邮差学习中心 (postman.com)
在这个模块,对API的性能进行监控,可以基于已有的集合监控器或者添加新的监控器,也可以连接uptime monitor。
Observing an API | Postman Learning Center
填写分享信息和 角色
Managing and sharing APIs | Postman Learning Center
关于mockserver的使用方法,之前写过一篇文章
官方文档:设置模拟服务器|邮差学习中心 (postman.com)
postman里可以有多种入口创建mock server,比如点击左侧的菜单mock server,直接基于某个集合创建mock,
点击new创建
在API的概述页面创建
会生成url
在集合的右侧,可以看到集合的mock server
使用模拟URL,您可以立即开始发出请求。确保要模拟的请求至少添加了一个示例
如图,每一个为一个example,添加example后,为example设计参数和响应。
首先将mock的URL设置为环境变量baseUrl,填写下面的example
发送请求时,mock就会基于这些参数,来给出你设计的响应。如图,向这个get路径发送参数,收到来自模拟服务器的预期响应
免费账户每月可以创建的mock server是有数量限制的。
针对每一个example发送请求并保存请求,最后保存的请求,就是一条条测试用例。
后续API开发好后,直接更改环境URL,即可run collection进行测试。
在本演示中,您在示例中定义了模拟服务器要返回的数据。但是,在某些情况下,您可能希望模拟服务器返回包含随机数据的响应。
要让模拟服务器返回随机数据,请在示例的响应正文中使用动态变量。动态变量作为模拟服务器响应的一部分进行解析,并替换为随机数据。动态变量对于在模拟 API 时生成随机数据非常有用,您可以使用它们进行探索性测试和编写丰富的数据驱动测试。
例如,示例的响应正文可能包含动态变量,如下所示:
- {
- "name": "{{$randomFullName}}",
- "userName": "{{$randomUserName}}",
- "location": "{{$randomCity}}",
- "company": "{{$randomCompanyName}}",
- "jobTitle": "{{$randomJobTitle}}",
- "updatedAt": "{{$timestamp}}"
- }
调用模拟服务器终结点时,响应数据将更改为如下:
- {
- "name": "Cielo McClure",
- "userName": "Aurelie.Lockman",
- "location": "Kubhaven",
- "company": "Runolfsdottir, Bernhard and Hodkiewicz",
- "jobTitle": "Direct Branding Liaison",
- "updatedAt": "1565088856"
- }
postman还可以很多其他功能,感兴趣可以自行研究。