【4】Postman之Tests(断言)
简介:使用postman完成请求后,验证返回结果,会用到tests断言。官方提供了很多可以直接使用的方法~
接下来主要介绍这些方法是如何使用。
1. 变量相关:
- Get an environment variable 获取一个环境变量
- Get a gloval variable 获取一个全局变量
- Get a variable 获取一个变量
- Set an environment variable 设置一个环境
- Set a global variable 设置一个全局变量
- Clear an environment variable 清空一个环境变量
- Clear a global variable 清空一个全局变量
使用:
- 获取变量:如果在下一个请求中用到上一个请求的返回值,可以使用“设置一个全局变量”将请求的返回值设置为全局变量后,在下一个请求中,使用“获取一个全局变量”取到该值。
- 清空变量:这里的清空等译删除变量,一个参数使用完成后,需要删除,或者清空值都可以使用该方法。
2.状态码
Status code: Code is 200
判断状态码是否正确;默认判断状态是否为 200, 可修改;Status code:Successful POST request
判断状态码是否为预期结果之一;比如默认断言状态码是否是 201, 202 中的一个;Status code:Code name has string
判断状态码描述是否包含字符串,比如是否包含 Created;
3. 响应结果断言:
Response body: Contains string
响应结果是否包含字符串;Response body: JSON value check
响应结果如果是 JSON,检查具体的 JSON 值;Response body: Is equal to a string
响应结果与字符串是否全部匹配预期的字符串;Response body: Convert XML body to a JSON Object
将 XML 转换成 JSON;
4. Header :
Response headers:Content-Type header check
响应头部中是否包含字段;
5. 响应速度:
Response time is less than 200ms
响应时间是否少于多少 ms。
例如:
请求的响应为json格式:
{
"code": 200,
"message": "添加成功",
"id": "d794bed4-73ae-4756-bf11-3e7ebbdd43db",
}
tests中验证:
- //将结果转换为json字符串
var jsonData = pm.response.json();
- //验证code为200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
- //验证message为:添加成功
pm.test("添加成功", function () {
pm.expect(jsonData.message).to.eql("添加成功");
});
备注:在验证json中的内容时,我这个是简单的object类型的,如果涉及到数组,要逐级验证,定位到具体的值。例如:
jsonData.biz_data[0]._id.value (数组使用[],object可以直接使用点)
- //id是我之后要用到的值,所以将其设置为全局变量
pm.globals.set("id", jsonData.id);