利用 Postman 中 Tests 断言校验返回结果
# 前言
Postman目前是一款很火的接口测试工具,它有着非常强大结果判断能力。
为什么说强大呢,因为Postman有自带的校验脚本,根本不需要我们去学习JS脚本语言,对于代码能力为0的各位测试小伙伴来说,特别的友好。
![](/uploads/photo/2019/4cfd7a5e-86f9-469c-bca0-373c4b4ae68d.png!large)
通过Tests的代码校验,可以很快的得到结果判断。如果校验通过,则断言为PASS,如果校验失败,则断言为FAIL
#### Response body:Contains string (校验返回结果中是否包含某个字符串)
代码如下:
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
![](/uploads/photo/2019/57d32bef-2e0c-4abc-9cee-f82ab713a9bb.png!large)
***例子***:
![](/uploads/photo/2019/f6cd2f09-eb38-4bd8-b723-2d0509c9c0c0.png!large)
***结果***:
![](/uploads/photo/2019/41c988a3-fb78-4419-bfaf-bc58990c9dfe.png!large)
#### Response body:Is equal to a string (校验返回结果是否等于该字符串)
***注意***:
这个校验,必须是接口的返回结果与字符串要一模一样。
代码如下:
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
![](/uploads/photo/2019/c75639e8-aa42-4afe-afef-3e065ad69e5a.png!large)
***例子***:
![](/uploads/photo/2019/46e0a316-d122-4953-8529-6e46b752eae5.png!large)
***结果***:
![](/uploads/photo/2019/6ab77c8f-69a7-4a30-82ac-346ddf2c5587.png!large)
#### Response body:JSON value check(校验返回结果中某个字段值是否等于某个值)
代码如下:
pm.test("Your test name", function () {
//设置jsonData变量用来接收postman的json格式的返回数据
var jsonData = pm.response.json();
//判断返回数据中,msg字段是结果是否为OK
//此处与需要注意一下json格式,jsonData为整个接口的返回数据,jsonData.msg是第一层级字段
pm.expect(jsonData.value).to.eql(100);
});
***例子***:
![](/uploads/photo/2019/1bcf0c59-c6ef-4d26-92ac-8f50ee8165f0.png!large)
***结果***:
![](/uploads/photo/2019/9dec2ee5-81b8-4228-a7f0-c6bc562686b4.png!large)
#### Response header:Content-type header check(校验响应头是否包含某个值)
代码如下:
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
![](/uploads/photo/2019/470346f6-89c7-4ece-bf8f-893a28972979.png!large)
***例子***:
![](/uploads/photo/2019/39c00bf5-b812-4307-8d2d-b0c4ec8c92f5.png!large)
***结果***:
![](/uploads/photo/2019/dc466e6c-190f-4027-9bbb-c970ed53d81e.png!large)
#### Response time is less than 200ms(校验响应时间是否少于200ms(毫秒))
代码如下:
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
![](/uploads/photo/2019/470346f6-89c7-4ece-bf8f-893a28972979.png!large)
***例子PASS***:
![](/uploads/photo/2019/63068515-32aa-4ba5-b6e7-569d99e67b1b.png!large)
***例子FAIL***:
![](/uploads/photo/2019/e287088a-2fdc-4c3b-ae59-0da25c6f3e97.png!large)
#### Status code:Code is 200(校验响应头是否包含某个值)
代码如下:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
![](/uploads/photo/2019/a98e3828-5108-4336-95c5-5a47d87a4dd3.png!large)
***例子PASS***:
![](/uploads/photo/2019/81e9dc67-fb37-4a9a-a89e-9c7019eb2a91.png!large)
***例子FAIL***:
![](/uploads/photo/2019/e4acd702-c76a-4ebd-88e3-964da69da989.png!large)
## 至此,Postman断言的多种方式已经学习完毕。加油!!