postman测试时,除了静态分析填写Cookie,遇到Cookie频繁变化的常见,需要动态获取Cookie,可以通过变量的方式获取和传递
使用Tests脚本获取Cookie并设置变量:
然后使用Cookie的地方通过 {{cookie_uid}} 的方式来引用:
调试的过程中,可以打开postman左下角右边的调试控制台查看详情:
调试静态获取的时候,可以直接通过 MANAGE COOKIES来自动提取:
下面主要介绍动态读取使用的方法
//方法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;
// }