【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
————————————————
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM