断言:预期结果与实际结果对比,预期==实际,通过;预期!=实际,则失败
这里介绍postman本身所提供的断言。
1、检查返回接口的状态码
Status code is 200:要求返回接口的状态码为200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
2、检查响应体中是否包含字符串
Response body:Contains string:检查响应体中是否包含字符串
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
注:由于返回值为json格式:{“code”: 200, “id”: “1”, “name”: “\u5c0f\u660e”, “age”: 18},所以文本只能读取到code、id、name、age
若要取出键值对,见3:Response body:Json value check:检查响应体json的值
3、检查响应体json的值
Response body:Json value check:检查响应体json的值
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
数据格式:
{
"code": 200,
"id": "1",
"name": "小明",
"age": 18
}
取出相应的值:jsonData.name 即jsonData.key
若name中含有列表,格式:jsonData.name[0]
4、检查响应体等于字符串
Response body:is equal to a string:检查响应体等于字符串
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
注:注意中文字符格式转换
5、检查响应中包含某个header
Response headers:Content-Type header check:检查响应中包含某个header
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
// 检查响应体中有header:Content-Type
6、检查响应时间少于多少秒
Response time is less than 200ms:检查响应时间少于200豪秒
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
7、要求Status code符合某种条件
Status code:Successful POST request:要求Status code符合某种条件
pm.test("Successful POST request", function () {
pm.expect(pm.response.code).to.be.oneOf([201, 202]);
});
// 要求Status code属于[201, 202]内某一项
8、要求code名称中包含某个字符串
Status code:Code name has string:要求code名称中包含某个字符串
pm.test("Status code name has string", function () {
pm.response.to.have.status("OK");
});
// 要求code名称中包含字符串OK
9、将XML格式的响应体转换成JSON对象
Response body:Convert XML body to a JSON Object:将XML格式的响应体转换成JSON对象
var jsonObject = xml2Json(responseBody);