一:主要内容
- 从响应结果中找到满足条件的key,获取其value,参数化给后面的接口使用
二:参数化获取想要的value值,传给后面的接口使用
有时我们获取的响应数据,需要的那个字段可能在一个数组里面,需要我们提取满足条件的该字段来拿到对应的值,如:
下面一段响应数据,我想拿到员工名称为:自动化初始化员工,这个人的id
1 { 2 "result": { 3 "totalPages": 1, 4 "totalElements": 3, 5 "pageNumber": 0, 6 "pageSize": 100, 7 "pageOfElements": 3, 8 "content": [ 9 { 10 "id": "1bebc5f9a0534be6828e9a1e2918ea36", 11 "name": "自动化初始化员工", 12 "mobilePhone": "13390897802", 13 "hasAccount": true, 14 "type": "EMPLOYEE", 15 "createDateTime": "2019-04-15 15:49:08" 16 }, 17 { 18 "id": "0622715f7f90495a93711f0dec7e9e6d", 19 "name": "员工1", 20 "mobilePhone": "19989789878", 21 "hasAccount": true, 22 "type": "EMPLOYEE", 23 "createDateTime": "2019-02-25 15:09:37" 24 }, 25 { 26 "id": "500f624e87654f4495603a421ad9c2e8", 27 "name": "员工2", 28 "mobilePhone": "18499991111", 29 "hasAccount": true, 30 "type": "STORE_OWNER", 31 "createDateTime": "2019-01-22 17:58:40" 32 } 33 ], 34 "hasContent": true, 35 "isFirst": true, 36 "isLast": true 37 }, 38 "code": 0, 39 "message": "OK" 40 }
实现脚本如下:
1 // 把responseBody转为json字符串 2 var data =JSON.parse(responseBody); 3 4 // 获取employeeId即员工id 5 var employeeId=""; 6 for(var i=0;i<data.result.content.length;i++){ 7 if(data.result.content[i].name=="自动化初始化员工"){ 8 employeeId=data.result.content[i].id; 9 console.log(employeeId); 10 break; 11 } 12 } 13 // 设置环境变量employeeId,即员工id,供后面的接口引用 14 pm.environment.set("employeeId",employeeId);
即tests脚本如图所示:
该接口运行后我们可以看到控制台中打印的我们拿到的员工id为:1bebc5f9a0534be6828e9a1e2918ea36,
正是我们需要的员工id,即获取正确,其他需要该值的接口都可以使用{{employeeId}}或pm.environment.get("employeeId")的方式去获取