Appearance
Postman 断言
1. 概述
如果没有断言,我们只能做接口的功能测试,但有了断言后,就为我们做自动化提供了条件,并且在 postman 中的断言是非常方便和强大的,我们先来了解下 postman 断言的一些特点,具体如下:
- 断言编写位置:Tests标签
- 断言所用语言:JavaScript
- 断言执行顺序:在响应体数据返回后执行 。
- 断言执行结果查看:Test Results
在上面我们介绍到,编写的断言代码是 JavaScript,那如果不会写怎么办 ?不用担心,因为 postman 已经给我们内置了一些常用的断言,用的时候,只需从右侧点击其中一个断言,就会在文本框中自动生成对应断言代码块。
接下来就让我们了解一些常用断言,还是按响应的组成来划分,分别是状态行,响应头,响应体。
2. 常用断言
2.1 状态行断言
- 断言状态码
js
pm.test("Status code is 200", function () {
//这里填写的200是预期结果,实际结果是请求返回结果
pm.response.to.have.status(200);
});
- 断言状态消息
js
pm.test("Status code name has string", function () {
//断言响应状态消息包含OK
pm.response.to.have.status("OK");
});
2.2 响应头断言
- 断言响应头中包含某个参数
js
pm.test("Content-Type is present", function () {
//断言响应头存在"Content-Type"
pm.response.to.have.header("Content-Type");
});
2.3 响应体断言
- 断言响应体中包含 xxx 字符串
js
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
- 断言响应体等于 xxx 字符串
js
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
- 断言响应体(json格式)中某个键名对应的值
js
pm.test("Your test name", function () {
//获取响应体以json显示,赋值给jsonData;注意:该响应体必须返会是的json,否则会报错
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
2.4 其他
- 断言响应时间
js
pm.test("Response time is less than 200ms", function () {
//断言响应时间<200ms
pm.expect(pm.response.responseTime).to.be.below(200);
});