Postman能否读取GET请求响应数据并通过条件判断执行POST请求?
实现Postman链式请求(GET取数后触发POST)的操作方法
一、GET请求返回数据的存储方式
GET请求的返回数据默认不会自动持久化存储,需要你手动在请求的Tests标签页中写脚本,将需要的字段存入Postman提供的3类变量中,按需选择作用域即可:
- 集合变量:仅当前接口集合内可访问,适合同业务场景的接口联动,示例代码如下:
// 解析GET响应,若返回为文本格式则替换为pm.response.text() const getRes = pm.response.json(); // 按需将需要的字段存入集合变量,例如下方存储响应中的token、用户ID字段 pm.collectionVariables.set("post_req_token", getRes.token); pm.collectionVariables.set("post_user_id", getRes.data.userId);
- 环境变量:仅当前选中的运行环境(测试/预发/生产等)内可访问,适合多环境切换的场景,将上方代码中的
pm.collectionVariables替换为pm.environment即可完成存储 - 全局变量:所有Postman请求都可访问,适合通用公共参数存储,将上方代码中的
pm.collectionVariables替换为pm.globals即可完成存储
二、POST请求调用存储数据的方法
直接在POST请求的对应参数位置,用{{变量名}}的格式引用之前存储的变量即可:
- 若需要放在请求头:例如
Authorization字段的参数值填Bearer {{post_req_token}} - 若需要放在请求体:例如JSON格式的请求体中写
"userId": "{{post_user_id}}" - 若需要放在URL参数:直接在参数值栏填
{{post_req_token}}即可
三、GET请求成功后自动触发POST请求的实现
如果需要GET请求执行成功后自动运行POST请求,在GET请求的Tests脚本末尾补充以下代码即可:
// 判断GET请求响应状态码为200时触发下一个请求 if(pm.response.code === 200){ // 引号内填写你要触发的POST请求的完整名称,需要和集合内的请求名完全匹配 postman.setNextRequest("提交用户数据接口"); }
注意:自动链式触发需要将两个接口放在同一个Postman集合中,使用集合的「Run collection」功能批量执行,单独点击GET请求的发送按钮不会触发后续请求的自动运行。
内容的提问来源于stack exchange,提问作者KniteRite
相关产品推荐
相关产品推荐

