【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

 

posted @ 2020-04-09 17:12  gtea  阅读(2545)  评论(0编辑  收藏  举报