@[TOC]Postman使用心得一----常用断言
最近在使用Postman做接口自动化需求,学到一些东西,借这个平台分享下
首先介绍下最常用的断言:
1.判断响应体中包含200 接验证接口的返回状态
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
})
2.验证列表是不是为空,我采用的方式是判断list的长度是不是大于1
pm.test("列表数据不为空"+jsonData.data.data.length,function(){
pm.expect(jsonData.data.data.length).to.above(0);
})
3.算是比较常用的,遍历获取到的值,然后和环境变量中的做对比,看是否相等
for(var i=0;i<errorList.length;i++){
pm.test("第"+i+"个id正确"+errorList[i].cid, function () {
pm.expect(errorList[i].cid).to.eql(pm.environment.get("cid"));
})
}
4.验证返回的json体中是否包含XX内容
pm.test("验证描述内容是否为输入的内容",function(){
pm.expect(data[0].operationRecord.problemRemarks).to.include("验证描述")
})
5.这个稍微复杂一点,获取数组中的数组的某个值,再把值存到数组中在赋值给环境变量
for (var i=0 ;i<data.length;i++){
for(var j=0;j<data[i].shownOperationRecords.length;j++){
if(data[i].shownOperationRecords[j].cid==pm.environment.get("cid")&&data[i].shownOperationRecords[j].readStatus==0){
arr.push(data[i].shownOperationRecords[j].id)
pm.environment.set("recordid",arr)
}
}
}
6.检查返回的数组中是否有重复字段
var jsonData = pm.response.json();
var data=jsonData.data
//取出接口返回的数据,存到数组中
var arr=[]
for(var i=0;i<data.length;i++){
arr.push(data[i].cw_ms)
}
//把数组中的数据进行排序,两两进行对比
var nary=arr.sort();
for(var i=0;i<arr.length;i++){
if(arr[i]==arr[i + 1]){
pm.test("重复数据"+arr[i], function(){
pm.expect(1).to.not.eql(2)
})
}
}
7.检查返回的json中是否有某个属性,这个属性怎么说呢,直说属性大家可能理解不了,举个例子吧,比如json格式如下:
{
“id”: [
“0001”
],
“name”: [
“小明”
]
}
然后我们获取一下他的属性name
var jsonData = pm.response.json();
console.log(Object.getOwnPropertyNames(jsonData))
输出的结果
通过打印的结果我们可以知道这个属性是个什么东西了,然后我们就是去获取这个属性,看看他是否存在,hasOwnProperty返回的是布尔值
pm.test("检查json中是否包含name", function () {
pm.expect(jsonData.hasOwnProperty("id")).to.equal(true);
});