You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman如何遍历响应数组取值,依次代入后续请求循环执行

问题根因

你之前的写法存在两个核心错误:

  • postman.setEnvironmentVariable() 需要同时传入变量名和变量值两个参数,你只传入了id值没有指定变量名,无法生成可用的环境变量
  • 直接循环遍历数组赋值会导致后续id覆盖前值,最终只会保留数组最后一个id,无法实现依次调用的需求
解决方案

步骤1:修改第一个请求的Test脚本

把整个存款数组、当前执行索引、首个要用到的存款id存入环境变量,代码如下:

const responseJson = pm.response.json();
// 取出存款数组,转成字符串存入环境变量(Postman环境变量仅支持存储字符串格式)
const deposits = responseJson.params.Deposits;
pm.environment.set('depositsList', JSON.stringify(deposits));
// 初始化当前执行索引为0,对应第一个存款id
pm.environment.set('currentDepositIndex', 0);
// 存入首个要使用的存款id
pm.environment.set('currentDepositId', deposits[0].id);

步骤2:修改第四个请求的Test脚本

每次跑完第四个请求后,判断是否还有未使用的存款id,如果有就跳转回第二个请求继续执行,没有就结束流程,代码如下:

// 取出存储的存款数组和当前索引
const depositsList = JSON.parse(pm.environment.get('depositsList'));
let currentIndex = parseInt(pm.environment.get('currentDepositIndex'));
// 索引+1,取下一个存款
currentIndex += 1;
if(currentIndex < depositsList.length) {
    // 还有未使用的id,更新环境变量,跳转回第二个请求
    pm.environment.set('currentDepositIndex', currentIndex);
    pm.environment.set('currentDepositId', depositsList[currentIndex].id);
    // 注意此处填写你的第二个请求的实际名称,要完全匹配
    postman.setNextRequest('第二个请求的名称');
} else {
    // 所有id都执行完毕,结束流程
    postman.setNextRequest(null);
}

步骤3:修改第二个请求的请求体

直接引用我们设置的currentDepositId变量即可:

{
  "id": "{{currentDepositId}}",
  "Amount": 2,
  "date" : null
}

运行说明

直接运行整个Postman集合即可,不需要手动调整请求顺序,脚本会自动按照你需要的请求1 > 2> 3> 4 > 2> 3> 4...的链路执行。

内容的提问来源于stack exchange,提问作者Hila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:06:05