接口测试实战(4)--postman断言
常见断言方法
1、状态码断言
pm.test
: 这是Postman的测试函数,用于定义一个断言。
它接受两个参数:
第一个参数是一个字符串,用于描述这个测试的目的或内容。这通常是一个简短的描述,比如 "Status code is 200",它会在测试结果中显示,帮助你快速识别是哪个测试通过了或失败了。
第二个参数是一个函数,它包含了断言的具体逻辑。
function() {...}
: 这是一个匿名函数,它包含了测试的具体实现。当Postman收到响应并执行Tests脚本时,它会调用这个函数来执行断言。
pm.response.to.have.status(200)
: 这是断言的实际内容。它使用了Postman的测试链语法来验证响应的状态码。
pm.response
: 这是一个对象,代表了API的响应to.have
: 这是链式调用的一部分,用于指定要验证的属性
status(200)
: 这指定了要验证的属性是状态码,并且期望的状态码值是200。
验证响应体包含特定文本
pm.test("Check if response body contains error message", function() { ... });
这是Postman中定义测试的标准语法。它接受两个参数:一个字符串,用于描述测试的名称;一个函数,包含测试的具体实现
var jsonData = pm.response.json();
这行代码使用Postman的pm.response.json()
方法将API响应体解析为JSON对象。解析后的对象存储在变量jsonData
中,这样你就可以访问该对象中的属性了。
pm.expect(jsonData.message).to.include('用户不存在');
这行代码是测试的核心部分,它使用Chai断言库的expect
方法创建一个断言。断言检查jsonData
对象的message
属性是否包含字符串'用户不存在'。如果包含,测试通过;如果不包含,测试失败,并在Postman的测试结果中显示一个错误。
验证JSON响应体中的特定字段
// 验证字段是否存在
pm.expect(jsonData).to.have.property('fieldName');
如果响应体是一个数组的话:
验证响应体中的字段值
验证响应头
pm.test("Content-Type is application/json", function () {
pm.response.to.have.header('Content-Type', 'application/json');
});
使用变量进行验证
// 先前设置的全局变量或环境变量
var expectedId = pm.globals.get("expectedId");
pm.test("Response body id matches expectedId", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.id).to.eql(expectedId);
});