postman参数化 接口响应数据获取符合条件的内容参数化给后面的接口使用

时间:2021-09-19 21:33:27

一:主要内容

  • 从响应结果中找到满足条件的key,获取其value,参数化给后面的接口使用

二:参数化获取想要的value值,传给后面的接口使用

有时我们获取的响应数据,需要的那个字段可能在一个数组里面,需要我们提取满足条件的该字段来拿到对应的值,如:

下面一段响应数据,我想拿到员工名称为:自动化初始化员工,这个人的id

 {
"result": {
"totalPages": 1,
"totalElements": 3,
"pageNumber": 0,
"pageSize": 100,
"pageOfElements": 3,
"content": [
{
"id": "1bebc5f9a0534be6828e9a1e2918ea36",
"name": "自动化初始化员工",
"mobilePhone": "13390897802",
"hasAccount": true,
"type": "EMPLOYEE",
"createDateTime": "2019-04-15 15:49:08"
},
{
"id": "0622715f7f90495a93711f0dec7e9e6d",
"name": "员工1",
"mobilePhone": "19989789878",
"hasAccount": true,
"type": "EMPLOYEE",
"createDateTime": "2019-02-25 15:09:37"
},
{
"id": "500f624e87654f4495603a421ad9c2e8",
"name": "员工2",
"mobilePhone": "18499991111",
"hasAccount": true,
"type": "STORE_OWNER",
"createDateTime": "2019-01-22 17:58:40"
}
],
"hasContent": true,
"isFirst": true,
"isLast": true
},
"code": 0,
"message": "OK"
}

实现脚本如下:

 // 把responseBody转为json字符串
var data =JSON.parse(responseBody); // 获取employeeId即员工id
var employeeId="";
for(var i=0;i<data.result.content.length;i++){
if(data.result.content[i].name=="自动化初始化员工"){
employeeId=data.result.content[i].id;
console.log(employeeId);
break;
}
}
// 设置环境变量employeeId,即员工id,供后面的接口引用
pm.environment.set("employeeId",employeeId);

即tests脚本如图所示:

postman参数化 接口响应数据获取符合条件的内容参数化给后面的接口使用

该接口运行后我们可以看到控制台中打印的我们拿到的员工id为:1bebc5f9a0534be6828e9a1e2918ea36,

正是我们需要的员工id,即获取正确,其他需要该值的接口都可以使用{{employeeId}}或pm.environment.get("employeeId")的方式去获取

postman参数化 接口响应数据获取符合条件的内容参数化给后面的接口使用