一、postman 断言
1.1 简介
借助 postman,代替人工,自动判断,预期结果和实际结果是否一致
1.2 断言常用方法
1.2.1 断言响应状态码
// 断言响应状态码
pm.test("断言响应状态码是200", function () {
pm.response.to.have.status(200);
});
pm:表示 postman的一个实例(对象)
test() postman实例调用的测试方法。这个方法有两个参数。
参1:字符串数据。内容,用来断言结束给出 提示性 文字信息,可以任意修改。 不参与断言。
参2:是一个匿名函数调用。
pm.response.to.have.status(200);的意思是:
postman的响应结果中应该含有 状态码 200。其中的 200为预期结果,可以修改。
1.2.2 断言响应体包含字符串
// 断言响应体中包含字符串
pm.test("断言响应体中包含字符串", function () {
pm.expect(pm.response.text()).to.include("10000");
});
1.2.3 断言json响应体数据
// 断言json指定key的值
pm.test("断言success的值true", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.success).to.eql(true);
});
1.3 断言的工作原理
二、postman 关联
2.1 关联的概念
当 接口 与 接口 之间有 数据依赖 关系时,解决这种依赖关系所使用的技术,叫关联。
说明依赖:一个接口返回的数据,被另外一个接口 发送请求时使用
举例:
1.登录接口,返回的令牌数据,被 添加员工 接口作为请求头使用。
2.添加员工成功,返回员工id,可以被 查询、修改、删除员工接口,在url中使用
2.2 关联的实现步骤
A接口响应结果,被B接口依赖:
- 发送 A接口请求,得到响应结果
- 将结果中关联数据,存入 公共容器(全局变量、环境变量)
- B接口,从 公共容器中提取数据,发送 B接口请求。
2.3 核心代码
- 获取响应结果。 var jsonData = pm.response.json()
将数据设置到 全局变量 中。
* 全局变量,在整个 postman 随处都能使用。 // 语法: pm.globals.set("全局变量名", 全局变量值) // 示例 pm.globals.set("glb_age", 22)
将数据设置到 环境变量中。
环境变量,在 特定的环境下,才能使用的变量。因此, 必须先创建环境,再创建、使用环境变量。
// 语法: pm.environment.set("环境变量名", 环境变量值) // 示例 pm.environment.set("env_age", 88)
在 请求参数(URL、请求头、请求体)中 获取 变量值。
// 示例 {{glb_age}} 或 {{env_age}}
在tests中获取变量值
pm.environment.get("环境变量名") pm.globals.get("全局变量名")
三、 postman 参数化
3.1 简介
将 http请求需要的数据,和断言数据,组织到一个 文件中。
从postman导入文件,实现 http请求发送、断言。
3.2 应用场景
针对同一个接口,组织 N 条 不同的 测试用例。数据格式完全一致的。适用 参数化。
3.3 数据文件
3.3.1 CSV文件
优点: 数据组织格式简单
缺点:
* 不支持bool类型
* 不支持复杂数据类型
* 不支持参数测试
应用场景:量简单数据,不需要做参数测试
3.3.2 json文件
优点:
* 支持bool类型。
* 支持复杂数据类型(列表,字典等)。
* 支持参数测试
缺点:相同的数据量,json文件要远大于 csv文件。
应用场景:测试数据量相对较少。需要进行 参数测试
3.4 读取文件
- 根据 使用位置 不同,有两种方法。
- 代码(Tests)中使用
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。