Postman如何使用前置请求脚本设置响应中存在依赖关系的2个集合变量
Postman 关联id提取及集合变量设置脚本方案
以下是适配你给出的响应结构的前置请求脚本,完全满足仅当id和subId存在绑定关系时才设置变量的要求:
// 解析接口返回的JSON响应 const resData = pm.response.json(); // 遍历所有result记录 resData.result.forEach(record => { // 仅当subId为非空数组且包含有效值时,才判定为存在绑定关系 if (record.subId && Array.isArray(record.subId) && record.subId.length) { // 提取主id和关联的subId值,默认取subId数组的第一个值 const mainId = record.id; const relatedSubId = record.subId[0].id; // 设置为集合变量,变量名可根据你的需求修改 pm.collectionVariables.set("bind_main_id", mainId); pm.collectionVariables.set("bind_sub_id", relatedSubId); // 如果只需要取第一条符合条件的记录,取消下方break的注释即可 // break; } });
补充说明
- 如果
subId数组可能包含多个有效值需要批量存储,你可以修改脚本逻辑,把所有匹配的id对拼接为字符串或者转为JSON格式后再存入集合变量 - 脚本默认会遍历所有符合条件的记录,没有开启break的话最终存储的是最后一条匹配记录的id值
- 自动过滤
subId为null、空数组的无效记录,不会触发变量赋值操作
内容的提问来源于stack exchange,提问作者Avinash Kunapareddy
相关产品推荐
相关产品推荐

