目录
五、Postman
1、安装
2、postman的界面介绍
Home主页
workspaces 工作空间
- Collections:项目集合
- APIs:api文档
- Enviromments:环境变量,全局变量
- Mock Server:虚拟服务器
- Monitors:监听器
- History:历史记录
六、Postman执行接口测试
下面以get请求为例,post请求参考视频:8.精通Postman之发送post请求及get和post的区别_哔哩哔哩_bilibili
Create Collection→输入集合名称→在集合处右键→点Add request→输入请求名称→设置请求方式为get/post→输入请求路径→(下面是一些GET++请求页面++的参数介绍)→send→(获得响应页签)
1、请求页签
①Params:get请求传参
②authorization:鉴权
③headers:请求头
④Body:post请求传参
- form-data:既可以传键值对参数也可以传文件。
- x-www-from-urlencoded:只能够传键值对参数。
- raw :可以传输 json , text , xml, html , javascript类型数据。
- binary:把文件以二进制的方式传参。
⑤pre-request-script:请求之前的脚本。
⑥tests:请求之后的断言。
⑦cookies:用于管理cookie信息。
3、响应页签
①Body:接口返回的数据。
- Pretty:以Json,html,XML .... 不同的格式查看返回的数据。
- Raw:以文本的方式查看返回的数据。
- PreView:以网页的方式查看返回的数据。
②Cookies:响应的Cookie信息
③Headers:响应头
④Test Results:断言的结果
⑤200:状态码
⑥OK:状态信息
⑦681MS :响应的时间
⑧343B:响应的字节数
参考的接口文档:
1、获取接口统一鉴权码token接口:获取接口调用凭据 | 微信开放文档
2、标签管理接口
3、黑名单管理接口
4、文件上传接口
七、Postman的环境变量和全局变量
1、创建环境变量和全局变量可以解决的问题
2、postman中的操作
全局变量:在所有的接口里面都可以访问的变量。
环境变量:在当前环境里面都可以访问的变量。
①设置环境变量
环境变量1 环境变量2 环境变量3
②把所有请求中的ip地址改成获取环境变量的方式:{{变量名}}
③在postman右上角选择不同的环境即可
【补充】全局变量在之后补充
八、接口关联
1、第一种方式:Json提取器
①取值并设置全局变量(在一个接口处)
重点是第4行和第7行,第1行和第5行是打印语句
注意这里的接口是第一个接口get
②查看全局变量
③ 在需要的接口里通过{{}}取得全局变量的值(第二个接口处)
这里的接口是第二个接口post
2、第二种方式:正则表达式提取器
和上面Json提取器步骤一样,唯一不一样的是第一步,取值并设置全局变量:
九、Postman内置动态参数和自定义的动态参数
1、内置动态参数
都是带$符号的
{{$timestamp}} //动态生成当前时间的时间戳
{{$randomlnt}} //动态生成0-1000的整形随机数
{{$guid}} //动态生成随机的guid字符串
2、自定义的动态参数
使用时使用:{{times}}
十、Postman断言
1、常规断言:六种
Status code:Code is 200 :检查返回的状态码是否为200(常用)
Response body:Contains string :检查响应中包括指定字符串(常用)
Response body:Json value check: 检查响应中,json中其中一个字段的值(常用)
Response body:is equal to a string :检查响应等于一个字符串(常用)
Response headers:Content-Type header check :检查是否包含响应头Content-Type
Response time is less than 200ms:检查请求耗时小于200ms
python
//状态断言
pm.test("检查返回状态码为200",function(){
pm.response.to.have.status(200);
};
//业务断言
pm.test("检查返回的结果中包括指定access_token字符串",function(){
pm. expect(pm.response.text()).to.include("access_token");
});
2、动态参数断言
在断言只能获取自定义动态参数(全局变量)的方式:三种方式效果一样
pm.globals.get("times")
globals["times"]
globals.times
//业务断言,其中times是自定义的全局变量
pm.test("检查返回的结果中包括标签名",function(){
pm. expect(pm.response.text()).to.include("测试测试"+pm.global.get("times"));
});
3、全局断言
对于每个接口测试都包含的断言(比如断言状态码是不是200),这种断言可以写在全部断言中,这样其他接口的测试模块的断言就可以不写和全局断言相同的代码了,减少代码重复。