一:主要内容
- 从响应结果中找到满足条件的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脚本如图所示:
该接口运行后我们可以看到控制台中打印的我们拿到的员工id为:1bebc5f9a0534be6828e9a1e2918ea36,
正是我们需要的员工id,即获取正确,其他需要该值的接口都可以使用{{employeeId}}或pm.environment.get("employeeId")的方式去获取