postman tests获取cookie

时间:2024-04-09 18:05:37

postman测试时,除了静态分析填写Cookie,遇到Cookie频繁变化的常见,需要动态获取Cookie,可以通过变量的方式获取和传递

 

使用Tests脚本获取Cookie并设置变量:

postman tests获取cookie
 

然后使用Cookie的地方通过 {{cookie_uid}} 的方式来引用:

postman tests获取cookie

 

调试的过程中,可以打开postman左下角右边的调试控制台查看详情:

postman tests获取cookie

 

调试静态获取的时候,可以直接通过 MANAGE COOKIES来自动提取:

postman tests获取cookie

 

 

下面主要介绍动态读取使用的方法


//方法1:

试时可以使用responseCookies对象,postman.getResponseCookie(cookieName)检索制定名称的Cookie,他将返回一个Cookie对象的数组。每个Cookie都会包含下面这些属性: domain、hostonly、httponly、name、path、sercure、session、storeId、value。如果要获取Cookie的value,可以通过:postman.getResponseCookie(cookieName).value获取。


tests["cookie_uid"] = postman.getResponseCookie("uid").value
console.log(tests["cookie_uid"]);  //控制台打印:“xxxx"
pm.globals.set("cookie_uid", tests["cookie_uid"]);

 

// //方法2:
// var cookies = postman.getResponseHeader('set-cookie');
// cookies = cookies.split(";");
// var cookie_uid = cookies[0];
// console.log(cookie_uid); //控制台打印:uid="xxxx"
// pm.environment.set("cookies",cookies[0]);

// tests["uid"] = JSON.parsetests["uid obj"]
// console.log(tests["uid value"]);

 

// //方法3:

// tests["cookie_uid"] = responseBody.has("Cookie");
//  //tests["cookie_uid"]===true;  //断言为true
// if(tests["cookie_uid"])
// {
//     // 将返回信息解析成对象
//     var responseData = JSON.parse(responseBody);
//     tests["cookie_uid"]=responseData.response.Cookie;
//     // 设置全局变量,把接口返回的token赋值给自定义的cookie_uid参数
//     pm.globals.set("cookie_uid",tests["cookie_uid"]);
//     //在控制台打印Cookie的值
//     console.log(responseData.response.Cookie);

//     //方便快速查看Cookie值
//     tests[responseData.response.Cookie] = true;
// }