如何在Postman中将请求体特定ID持久化为环境变量用于链式API请求?
Postman中实现API请求参数自动传递(提取SpecialID)
需要自定义测试脚本实现,Postman自带的简单变量提取没法满足这种带条件的数组过滤需求,具体步骤如下:
第一步:在第一个请求的「测试」标签中编写提取脚本
打开第一个请求的「测试」面板,添加以下代码,从当前请求的body中提取idType为SpecialID的id值,并存储为环境变量(也可根据需求改用全局变量):
// 获取第一个请求的请求体并解析为JSON对象 const requestBody = JSON.parse(pm.request.body.raw); // 从identifiers数组中筛选出idType为SpecialID的项 const specialIdItem = requestBody.details.identifiers.find(item => item.idType === "SpecialID"); // 将提取到的id存入环境变量,变量名设为specialId pm.environment.set("specialId", specialIdItem.id);
代码说明:
- 用
pm.request.body.raw获取当前请求的原始body内容,解析成JSON后遍历identifiers数组 find方法会直接返回第一个匹配idType === "SpecialID"的对象(因SpecialID一定存在,无需处理找不到的情况)- 通过
pm.environment.set把值存为环境变量,方便后续请求引用
第二步:在第二个请求中引用变量
在第二个请求需要用到该ID的位置(请求体、路径参数或查询参数均可),用{{specialId}}的格式引用这个环境变量。
比如第二个请求的请求体若需使用该ID,写法示例:
{ "targetId": "{{specialId}}" }
内容的提问来源于stack exchange,提问作者user1554876
相关产品推荐
相关产品推荐

