【Postman学习】获取返回值并设置为环境变量
//Postman获取返回值并设置为环境变量
1 //获取响应body 2 var jsonData = JSON.parse(responseBody); 3 console.log("jsonData_smsauth",jsonData); 4 //获取响应头部set-cookie 5 var set_cookie = postman.getResponseHeader("set-cookie"); 6 console.log(set_cookie); 7 //用spilt方法将其分割成数组 8 scl_session = set_cookie.split(';')[0]; 9 console.log('scl_session_context', scl_session); 10 //将scl_session设置成环境变量 11 pm.environment.set("scl_session_context", scl_session);
1 //获取响应body 2 var jsonData = JSON.parse(responseBody); 3 console.log("jsonData_context",jsonData); 4 //获取csrf_token 5 csrf_token = jsonData.data.csrf_token 6 console.log('csrf_token_xcentral', csrf_token) 7 //将csrf_token设置成环境变量 8 pm.environment.set("csrf_token_xcentral", csrf_token); 9 //获取响应头部set-cookie 10 var set_cookie = postman.getResponseHeader("scl_session"); 11 console.log(set_cookie); 12 //用spilt方法将其分割成数组 13 //scl_session = set_cookie.split(';')[0]; 14 //console.log('scl_session_branch', scl_session); 15 //将scl_session设置成环境变量 16 //pm.environment.set("scl_session_branch", scl_session);
console.log("responseBody", responseBody); //var jsonObject = postman.response; var jsonObject = responseBody.match(/token: '(\w+)'/g); token = String(jsonObject[0].split(' ')[1]).slice(1,-1) console.log("token", token); postman.setEnvironmentVariable("token", token);
1 jsonData = JSON.parse(responseBody); 2 pm.environment.set("jsonData1", JSON.stringify(jsonData.data.event[0])); 3 pm.environment.set("jsonData2", JSON.stringify(jsonData.data.event[1])); 4 console.log("jsonData", JSON.stringify(jsonData.data.event));
var jsonData = JSON.parse(responseBody); //postman.setEnvironmentVariable("key", jsonData.key); console.log(typeof(jsonData)) pm.environment.set("key", jsonData.key); var jsonData = JSON.parse(responseBody); tests["Body matches string"] = responseBody.has(true); pm.test("检查请求是否包含true", function () { pm.expect(pm.response.text()).to.include(true); }); pm.test("检查请求是否成功", function () { var jsonData = pm.response.json(); pm.expect(jsonData.success).to.eql(true); });
杀毒:
var jsonData = JSON.parse(responseBody); //postman.setEnvironmentVariable("key", jsonData.key); console.log(typeof(jsonData)) pm.environment.set("key", jsonData.key); var jsonData = JSON.parse(responseBody); tests["Body matches string"] = responseBody.has(true); pm.test("检查请求是否包含true", function () { pm.expect(pm.response.text()).to.include(true); }); pm.test("检查请求是否成功", function () { var jsonData = pm.response.json(); pm.expect(jsonData.success).to.eql(true); });
var jsonData = JSON.parse(responseBody); console.log("jsonData",jsonData); var jsondata = postman.getResponseHeader("set-cookie"); console.log(jsondata) //用spilt方法将其分割成数组 data = jsondata.split(";"); console.log(data[0]) //然后将需要取的值设置到环境变量中 postman.setEnvironmentVariable("PHPSESSID_Cookie",data[0]);
console.log("responseBody", responseBody); //var jsonObject = postman.response; var jsonObject = responseBody.match(/token: '(\w+)'/g); token = String(jsonObject[0].split(' ')[1]).slice(1,-1) console.log("token", token); postman.setEnvironmentVariable("token", token);
var jsonData = JSON.parse(responseBody);//postman.setEnvironmentVariable("key", jsonData.key);console.log(typeof(jsonData))pm.environment.set("key", jsonData.key);var jsonData = JSON.parse(responseBody);tests["Body matches string"] = responseBody.has(true);
pm.test("检查请求是否包含true", function () { pm.expect(pm.response.text()).to.include(true);});pm.test("检查请求是否成功", function () { var jsonData = pm.response.json(); pm.expect(jsonData.success).to.eql(true);});

以往在取响应头中的值时都是用到getResponseHeader方法,比如取set-cookie的值,可以通过postman.getResponseHeader("set-cookie")来取值,其中set-cookie不区分大小写,但是如果存在多个set-cookie时,就无法都取到了。 通过postman官方文档,查到pm.respoonse.headers可以实现,具体如下: var responseH = pm.response.headers;//返回object类型所有响应header var jsonData = JSON.stringify(responseH);//转换成json格式 var result = JSON.parse(jsonData);//转换成数组对象 //遍历 方法一 for(var i=0;i<result.length;i++){ if(result[i].key===("Set-Cookie")){ console.log(result[i].value); } else{ continue; } } 方法二 for(var x of Object.keys(responseH.reference)){ if(x=='set-cookie'){ for(var i = 0 ;i < Object.values(responseH.reference[x]).length;i++ ){ console.log(Object.values(responseH.reference[x])[i].value); } } } 方法三 for(var i in responseH.reference){ if(responseH.reference[i] instanceof Array){ for(var j=0 ;j<responseH.reference[i].length;j++ ){ console.log(responseH.reference[i][j].value); } } } 方法四 for(var i in responseH.members){ if(responseH.members[i].key=='Set-Cookie'){ console.log(responseH.members[i].value) } } 通过控制台,发现两个set-cookie均正确提取。 官方文档:https://learning.getpostman.com/docs/postman/scripts/postma ————————————————
作者:gtea
博客地址:https://www.cnblogs.com/gtea
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!