Postman如何遍历项目ID数组批量发起请求获取各项目员工费率数据
Postman遍历项目ID批量请求Teamwork接口方案
现有流程说明
- 已配置第一个GET请求拉取全量项目列表,在请求的Tests标签编写脚本提取项目ID存入数组,现有脚本如下:
var jsonData = JSON.parse(responseBody); var list = (jsonData.projects).length; var a=[]; for (var i = 0; i < list; i++) { var counter = jsonData.projects[i]; IDs=counter.id a.push(IDs) } postman.setEnvironmentVariable("id", a);
脚本运行后生成名为id的环境变量,值为全量项目ID组成的数组(Postman环境变量仅支持字符串类型存储,实际保存值为逗号分隔的ID字符串)。
- 已配置第二个请求用于拉取单个项目员工费率,请求地址为
{{Domain}}/projects/{id}/rates.json,Domain环境变量已配置完成可正常调用,需要遍历所有项目ID替换路径参数完成批量请求。
实现步骤
- 脚本位置选择:把批量请求逻辑直接追加在第一个拉取项目列表请求的Tests标签现有代码末尾即可,不需要修改第二个费率请求的配置,也不需要在第二个请求的Pre-request Script/Tests标签额外编写代码。
- 追加的可直接运行脚本代码:
// 解析环境变量中存储的项目ID数组 const projectIdList = pm.environment.get("id").split(","); const requestDomain = pm.environment.get("Domain"); // 遍历ID逐个发送费率查询请求 projectIdList.forEach(currentId => { const reqUrl = `${requestDomain}/projects/${currentId}/rates.json`; pm.sendRequest(reqUrl, (error, response) => { if (error) { console.log(`ID为${currentId}的项目请求失败:`, error); return; } // 响应处理逻辑可写在这里,比如打印结果、转存变量、导出数据等 console.log(`项目${currentId}费率数据:`, response.json()); }); });
注意:上述写法为异步并发请求,如果需要按ID顺序同步拉取、或需要汇总所有响应结果统一处理,将forEach循环替换为普通for循环配合async/await编写即可。
内容的提问来源于stack exchange,提问作者Pierre-Luc Miquelon
相关产品推荐
相关产品推荐

