【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