Postman的断言是用javascript语言写的
引入--什么是断言
结果中的特定属性或值与预期做对比,如果一致,则用例通过,如果不一致,断言失败,用例失败。断言,是一个完整测试用例所不可或缺的一部分,没有断言的测试用例仅仅是测试步骤。
1.断言状态码--Status code:Code is 200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
解释:
- pm是一个全局对象,代表了postman运行时的环境,并且他提供了一些列内置的方法和属性
- test是postman封装的一个方法,pm.test()用于创建并定义一个测试用例,它接受两个参数:测试用例的描述(作为字符串)和一个回调函数(用于编写测试逻辑)
- "Status code is 200"是字符串,用于描述该测试用例的名称.它并不是固定的写法,而是可以根据具体需求自定义的
- function()是一个匿名函数(也叫回调函数),作为参数传递给pm.test()
- pm.respose对象访问测试请求的响应,并使用.to.have.stasus(200)来断言响应的状态码是否为200
2.断言响应体的内容包含某字符串--Response body: Contains string
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
- pm.response.text()是一个内置方法,.response获取API接口响应的内容,.text()转换获取的内容为文本形式
- pm.expect():断言方法,用于断言特定的条件是否正确
- .to.include("string"):断言条件,检查钱买你获取的响应是否包含指定的字符串.真通过,假不通过
3.断言Json数据--Response body: JSON value Check
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
- pm.response.json()是一个内置方法,.response获取API接口响应的内容,.json()转换获取的内容为json格式
- var jsonData:声明一个jsonData变量,用于接收返回的json格式数据
- .to.eql():比较实际值和预期值,相同则通过,不同则不通过
4.断言响应头--Response headers: Content-Type header check
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
1.对响应头里中的值(header)进行判断,是否包含对应的属性
5.断言响应时间/速度--Response time is less than 200ms
pm.test("验证响应时间小于200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});