postman通过脚本Tests设置全局cookie

  • 需求:每次通过postman发送请求,需要先在页面登录,然后找到application下的cookie,复制出来,放在postman对应的cookie中

  • 问题:比较麻烦,通过在postman定义一个登录接口,然后点击登录,将cookie进行设置,后续所有的接口就都有cookie信息了

  • 解决:

    • 定义登录接口,使用tests script设置全局变量CK,然后cookie使用CK变量,但是研究了半天发现cookie不能使用变量
    var cookie = postman.getResponseCookie("cookieName").value;
    console.log(cookie);
    pm.globals.set("CK", cookie);
    
    • 于是转变思路,将cookie放在header中,(cookie和header一样的),选中需要进行pre-request script的目录,进行如下操作:
    pm.request.headers.add("cookieName=" + pm.globals.get("CK"), "cookie")
    
    • 此时,此目录下的所有请求都会带上header信息:

      cookie: "cookieName={{CK}}"
      
  • 调用登录接口 -> 将返回值中的token信息设置到全局环境变量 -> 在需要使用的目录下的pre-request script下设置,例如:

  1. 设置
const resp = JSON.parse(responseBody);
pm.globals.set("CK", resp.data.jcCookie);
pm.globals.set("TK", resp.data.token);
  1. 使用
const tokens = Object.values(pm.globals.values);
const tk = tokens[1].TK.value;
const ck = tokens[1].CK.value;

pm.request.headers.add({
    key: "x-yzw-auth-token",
    value: tk
})
pm.request.headers.add({
    key: "x-yzw-jicai-token",
    value: ck
})
posted @ 2022-03-19 11:41  神一样的存在  阅读(790)  评论(0编辑  收藏  举报