postman的接口测试需要添加断言的方式对接口的判断,另外在tests中还可以进行很多的操作协助测试工作,做了一个简单整理。
一、断言部分:
1.判断请求返回的状态码为200,200就是请求状态正常。
tests["判断返回的状态为200"] = responseCode.code === 200;
2.判断请求返回的时间小于200ms,一般认证正常的请求应该在200ms之下。
tests["判断请求返回的时间小于200ms"]= responseTime < 200;
3.获取json数据并进行校对键对值的正确性
以下面的返回数据为例(之后的断言也是一这个返回为例):
"status": 1,
"res": [
{
"id": 39,
"from": “东方”,
"to": “南方”
},
{
"id": 38,
"from": “西北”,
"to": “东南”,
}
]
1)先获取到返回的json数据:
var responBody = JSON.parse(responseBody);
2)断言status返回的值为1
tests["判断返回的status返回为1"] = responseBody.status === 1;
3)断言res下第一个元素中from的值为东方
tests[“res中第一个元素中from的值正确”] = responseBody.res[0].from === "东方";
4.判断数据返回类型是什么。我大概整理一下几种类型的:number 、string 、object 、array 、boolean 、undefind。
tests["判断res下第一个元素中id的返回元素为number"] = typeof(responseBody.res[0].id) === "number";
如果需要判断其他的类型就可以用同样的方法更换最后的类型就可以了。
5.判断返回数据中是否存在某个元素。这个虽然到现在一直没用得上,但是也是一个基础的断言语句了
还是以上面的返回数据为例子,判断返回元素中是否有status
tests["判断返回的元素中带有status"] = responseBody.has("status");
好了以上就是常用的几个断言语句了。。。
二、其他的操作
1.将获取到的值设置为环境变量-->key变量名 value 环境变量值
pm.environment.set("key",value)
2.设置流程控制跳转的下一条需要执行的接口-->requestname 为需要跳转的接口名
postman.setNextRequest(requestname)
3.判断一个字段返回的值是否在一个列表中出现过;
例子:接口A中返回的列表中的name字段的值,需要在B个列表中也出现且相等
for (var k=0;k
tests["判断name是否相同"] = Alist.indexOf(Blist[k].name) >-1;
}
Blist是B接口返回的数组,Alist是A接口返回的数组,通过遍历B数组查看是否有A数组中的name值,-1为没有的情况,所以使用 >-1判断是否存在