//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 ————————————————