使用场景
在非内部接口的测试调试过程中,需要通过登录来获取 token ,调用接口使用此 token 作为 header 一部分。
当前演示环境及条件如下:
1、Postman v8.0.2
2、登录接口:企业登录接口
3、请求接口:获取员工列表接口
两种解决方案
方法1 使用全局变量,获取一次 token 并写入全局变量,所有接口均可调用
缺点:每次获取 token 后手动更新 全局变量值
优势:简单联调接口,后续不使用维护时,更快捷不需要考虑写 JavaScript
方法2 使用 Javascript 自动获取
方法1:使用全局变量
1、进入这两个接口存放的目录后,定义token变量名称为“ manageToken ” ,注意语法{{manageToken}}
2、点击右上角的 “小眼睛” ,进入全局变量定义弹框中,并且点击 Edit 按钮
3、将变量名称填入 VARIABLE 列中,其 token 值填入INITIAL VALUE 和 CURRENT VALUE
图一
图二
方法2:使用脚本自动获取
tips:
Tests 栏可以理解为执行请求之后要做的动作
pre-request-scripts 栏可以理解为执行请求前要做的事
很显然我们需要做的是:
企业登录接口执行完成,登录接口要通过 Tests 栏的脚本 将 token 保留下来;
获取员工列表接口在执行前,需要通过 pre-request-scripts 栏的脚本 将 token 写入自己的 header 中
步骤1:请求企业登录接口,从 response 中找到 token (注意这个接口返回的是 json 格式的)
图一
步骤2:Test 栏中写脚本,将 response 获取 的 token 保留下来;脚本分两部分一个是定位获取到 token ,一个是保留 token 到变量
图一
代码如下:
var data2 = pm.response.json()["data"]["id"]; // 通过方法获取字典中的id 给变量 data2
pm.globals.set("manageId", data2);// 将变量 data2 的值设置为全局变量
步骤3:重新请求接口,全局变量中出现 manageToken key 和 值
图一
步骤4:员工列表中 header 定义token及变量 {{token}}
图一
步骤5: 员工列表的请求 pre-request-scripts 栏中,脚本获取全局变量的 “manageToken” 值,赋值给 步骤4 中定义的 {{token}} 即可,这样在请求接口前先将token传入到 header 中
图一
代码如下:
pm.environment.set("id", pm.globals.get("manageId")); // 获取全局变量的值,将全局变量的值传递给变量id