在做接口测试时,某些场景下需要添加断言,对接口进行判断,postman在"Tests"中提供了比较多的断言方式。
根据postman的Tests界面右侧SNIPPETS模块,我们可以看出Tests断言主要有如图六种方式:
- Status code:Status code is 200.(校验响应状态码是否等于某个值,一般是200)
- Response time :Response time is less than 200msis less than 200ms.(校验响应时间是否少于多少毫秒)
- Response body :JSON value check.(校验返回结果中某个字段的值是否等于某个值)
- Response body:Contains string.(校验返回结果中是否包含某个字符串)
- Response body:Is equal to string.(校验返回结果是否等于某个字符串,这种断言用法较少)
- Response headers:Content-type header check.(校验响应头是否包含某个字段)
其中前面三种断言方式用得比较多,后面三种相对来说用得比较少,主要掌握前面三种即可,下面我们将主要介绍前面三种断言方式的用法。
接口地址:https://www.v2ex.com/api/nodes/show.json?name=python
Method:GET
Authentication:None
1)判断状态返回码
判断状态返回码的状态是否为200,200就是正常。
断言代码:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
或者
tests["Status code is 200"] = responseCode.code == 200;
“Status code is 200”:此处的文字信息可以任意定义(填写),只是为了方便我们自己查看结果。
(运行的结果在“Test Results”中查看)
2)判断响应时间
根据测试标准,设置响应时间限制,断言代码如下:
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
“Response time is less than 200ms”:此处的文字信息可以根据需要自行填写。
3)判断是否存在某元素
判断测试响应数据中是否包含某元素。断言代码:
tests["判断返回的元素中是否有data"] =responseBody.has("data");//不包含
tests["判断返回的元素中是否有id"] =responseBody.has("id");//包含