Postman接口测试03|执行接口测试、全局变量和环境变量、接口关联、动态参数、断言
目录
七、Postman
1、安装
2、postman的界面介绍
八、Postman执行接口测试
1、请求页签
3、响应页签
九、Postman的环境变量和全局变量
1、创建环境变量和全局变量可以解决的问题
2、postman中的操作-全局变量
1️⃣手动设置
2️⃣代码设置
3️⃣界面获取
4️⃣代码获取
3、postman中的操作-环境变量
1️⃣手动设置
2️⃣代码设置
3️⃣界面获取
4️⃣代码获取
十、接口关联
1、第一种方式:Json提取器
2、第二种方式:正则表达式提取器(项目实战中的Token鉴权使用到了)
十一、Postman内置动态参数和自定义的动态参数
1、内置动态参数
2、自定义的动态参数
十二、Postman断言
1、常规断言:六种
2、动态参数断言
3、全局断言
七、Postman
1、安装
【安装教程】postman下载及安装-CSDN博客
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️⃣代码设置
// 代码设置:
// 语法:
pm.globals.set("全局变量名", 全局变量值)// 例子:
var age_tmp = 18 // 定义 js 语法的变量
pm.globals.set("glb_age", age_tmp)
3️⃣界面获取
从请求参数中获取
// 语法:
{{全局变量名}}// 示例:
{{glb_age}}
// 用在:查询参数、请求头、请求体 中。
4️⃣代码获取
#语法:
var 接收变量名 =pm.globals.get("全局变量名")#例子:
var ret_age = pm.globals.get("glb_age")
3、postman中的操作-环境变量
1️⃣手动设置
2️⃣代码设置
// 语法:
pm.environment.set("环境变量名”,环境变量值)// 例子:
var age_tmp= 19 //定义 js 语法的变量
pm.environment.set("env_age", age_tmp)
3️⃣界面获取
从请求参数中获取
// 语法:
{{环境变量名}}// 示例:
{{env_age}}
// 用在:查询参数、请求头、请求体 中。
4️⃣代码获取
// 语法:
var 接收变量名 =pm.environment.get("环境变量名")// 例子:
var ret_age = pm. environment.get("env_age")
十、接口关联
1、第一种方式:Json提取器
①取值并设置全局变量(在一个接口处)
②查看全局变量
③ 在需要的接口里通过{{}}取得全局变量的值(第二个接口处)
2、第二种方式:正则表达式提取器(项目实战中的Token鉴权使用到了)
和上面Json提取器步骤一样,唯一不一样的是第一步,取值并设置全局变量:
十一、Postman内置动态参数和自定义的动态参数
1、内置动态参数
都是带$符号的
{{$timestamp}} //动态生成当前时间的时间戳
{{$randomlnt}} //动态生成0-1000的整形随机数
{{$guid}} //动态生成随机的guid字符串
2、自定义的动态参数
使用时使用:{{times}}
十二、Postman断言
- 利用Postman 自带的断言机制,帮助我们自动判断 预期结果 和实际结果是否一致。
- 使用的 是 JavaScript 脚本语言,写在 Tests 的标签页中。 在 TestResults 标签中显示。
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
//状态断言
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),这种断言可以写在全部断言中,这样其他接口的测试模块的断言就可以不写和全局断言相同的代码了,减少代码重复。