第三节:Postman常用技巧(全局/环境变量、常用脚本代码、关联案例、断言、参数化)
一. 全局变量和环境变量
1. 全局变量
在 整个postman中都可以使用的变量。不需要 单独创建环境。
2. 环境变量
在 特定的环境下(或者作用域),才能使用的变量。需要给此变量创建单独的环境。使用步骤如下:
(1). 创建环境
(2). 在对应的环境内添加或修改变量
(3). 选择需要生效的环境
3. 变量的设置和使用
无论是全局变量还是环境变量,都可以通过 {{}} 符号调用,如下:
设置全局变量和环境变量的代码如下:
// 2.1 使用 全局变量
pm.globals.set("全局变量key", 全局变量值)
// 2.2 使用 环境变量
pm.environment.set("环境变量key", 环境变量值)
二. 常用脚本代码
1. 说明
这里实际上都是JavaScript代码,然后配合使用postman本身内置的一些变量和方法,一些常见的代码已经内置了,可以通过点击直接查看。
2. 常用代码
(1). postman对象: pm
(2). 获取接口返回的数据,转为json格式: let jsonData=pm.response.json();
(3). 全局变量的设置、获取、删除:
pm.globals.set("variable_key", "variable_value");
pm.globals.get("variable_key");
pm.globals.unset("variable_key");
(4). 环境变量的设置、获取、删除:
pm.environment.set("variable_key", "variable_value");
pm.environment.get("variable_key");
pm.environment.unset("variable_key");
三. 关联案例
1. 背景
当接口和接口之间,有依赖关系时,需要借助 postman 关联技术,来实现。如: 登录接口 返回的 令牌数据(token),需要被其它接口依赖使用。思路如下:
2. 实操
(1). 登录接口中的代码:
(2). 其它接口中的代码:
直接使用 {{token}} 即可
四. 断言
1. 什么是断言?
让 Postman工具 代替 人工 自动判断 预期结果 和 实际结果 是否一致
(1). 断言代码 书写在 Tests 标签页中。
(2). 查看断言结果 Test Results 标签页
另外常用的断言代码postman中都内置了:
2. 断言响应状态吗
pm.test("测试状态码是否为200", function () {
pm.response.to.have.status(200);
});
3. 断言字符串
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
4. 断言JSON
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
上述的 .value ,可以改为返回数据中的key
五. 参数化
1. 简介
(1). 什么是参数化 ?
将 测试数据,组织到 数据文件中,通过脚本的反复迭代,使用不同的数据,达到测试不同用例的目标。
(2). 应用场景
一般在测试同一个接口的不同 测试点时,只有测试数据不同。考虑使用 参数化。
2. 数据文件
(1). CSV
优点:数据组织格式简单
缺点:
1. 不能测试 bool 类型。因为 postman 读取 csv后,将所有非数值类型数据,自动添加 ”“ 变为字符串
2. 不能存储复杂数据类型(元组、列表、字典)。
3. 不能实现 参数测试。
应用场景:数据量较大,数据组织格式简单。
如果编码不正确,可以通过下面的方式调整一下:
(2). JSON
优点:
1. 可以测试 bool类型
2. 能使用 复杂数据类型
3. 可以实现 参数测试。
缺点:相同数据量,json文件要远大于 csv 文件。
应用场景:数据量较少,数据组织格式复杂。需要进行 参数测试!
3. 实操以一个登录接口为例,采用参数化的形式校验接口返回结果和预期结果是否相同。接口的返回格式如下图,这里就是重点判断 数据文件中的 myResult字段 和 接口返回的msg字段 是否相同。
(1). 配置基本的URL 和 参数, 上述数据文件(cvs 或 json),账号和密码的字段名称分别为: myAccount、myPwd,所以这里参数的位置需要通过 {{myAccount}}、{{myPwd}} 的方式传入。
(2). 编写测试脚本, 注意:通过data对象获取数据文件中的参数,比如 data.myResult
(3). 导入数据文件: 点击根目录 → 点击run按钮
进入Runner页面,选择需要测试的接口 → 选择数据文件
查看数据文件 → 进行测试
测试结果如下:
另外点击菜单 view - show postman console,可以跟踪请求详情。
!
- 作 者 : Yaopengfei(姚鹏飞)
- 博客地址 : http://www.cnblogs.com/yaopengfei/
- 声 明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
- 声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。