postman通过脚本配置动态token身份验证

本文的意义是自己做接口测试的时候可以不需要每次token过期都要手动的配置token到header里面

  • 就是你的token过期了,我只要点一下登录接口
  • 而不是点了登录接口然后还复制token出来又手动去设置token

逻辑是这样的
1. 登录的时候获取 token ->> 并且设置到全局变量 token 中
2. 设置项目的一个前置中间件 ->> 项目中所有的接口请求之前都会走这个前置中间件
3. 前置中间件设置 ->> 获取登录时存储的token变量 ->> 设置token到header里面
4. 请求项目中需要验证的接口时 -> 触发前置中间件 -> 自动设置header中的token ->后端接受验证token是否有效

5. 配置ENV环境这样可以通过环境请求不同环境地址的api

6. 要是你的验证码接口是请求返回的是一个url地址的话,你可以通过后置中间件二次请求获取图片

1. 配置登录接口后置钩子

看到右侧边没有,还有很多postman的函数等你发掘!!!

根据我下面的样例配置,解析后的data结构你们根据你们自己的系统配置

postman通过脚本配置动态token身份验证_第1张图片

下面是我的postman的脚步代码,解析后的data结构你们根据你们自己的系统配置

var data = JSON.parse(responseBody);
// pm.globals.set("access_token", data.data.access_token);
// pm.globals.set("refresh_token", data.data.refresh_token);

// 当然还有另一个全局设置是 collectionVariables 这是当前项目所有的变量
// 细分颗粒度的话推荐用 environment 因为这是当前环境 互不影响其他项目
pm.environment.set("access_token", data.data.access_token);
pm.environment.set("refresh_token", data.data.refresh_token);

2. 设置全局前置钩子

这一步是读取刚刚登录设置的全局变量,然后设置到请求头里面

postman通过脚本配置动态token身份验证_第2张图片

你们的请求头长啥样你配啥样,因为每个系统的token-key的名字不一样

// key名称和变量名称你根据自己的系统来

// pm.request.headers.add({
//     key: "Access-Token",
//     value: pm.globals.get("access_token")
// })
// pm.request.headers.add({
//     key: "Refresh-Token",
//     value: pm.globals.get("refresh_token")
// })

// 当然还有另一个全局设置是 collectionVariables 这是当前项目所有的变量
// 细分颗粒度的话推荐用 environment 因为这是当前环境 互不影响其他项目
pm.request.headers.add({
    key: "Access-Token",
    value: pm.environment.get("access_token")
})
pm.request.headers.add({
    key: "Refresh-Token",
    value: pm.environment.get("refresh_token")
})

 3. 配置好之后其他接口都不需要手动配置Token啦,减少繁琐的手动替换token

postman通过脚本配置动态token身份验证_第3张图片

配置好之后你的登录token失效就不要登记完之后还要copy token去手动去配置,方便吧!!!

4. 配置ENV区分本地环境、开发环境、测试环境、生产环境,左侧的E

postman通过脚本配置动态token身份验证_第4张图片

或者左侧也可以配置,这里可以新增、修改、删除环境变量

postman通过脚本配置动态token身份验证_第5张图片

 配置你的API请求地址

postman通过脚本配置动态token身份验证_第6张图片

 使用环境变量,这样你的host是根据环境动态变化了

postman通过脚本配置动态token身份验证_第7张图片

配置好之后你就不需要老是去更换host变量了,方便吧!!!

5. 你的项目要是有验证码的话,并且验证码是需要二次请求拿的话你可以看下面示例

先设置接口请求获取返回值

postman通过脚本配置动态token身份验证_第8张图片

我们看到返回值的url在data.image_url,这时候我们可以设置tests脚本进行二次请求

// 解析json
var data = JSON.parse(responseBody);

// 获取host环境变量的值
var host = pm.environment.get("host");

// 使用host和data.data.image_url构建重定向URL
var imageUrl = `${host}${data.data.image_url}`;

// 发送请求
pm.sendRequest(imageUrl, function (err, res) {
    console.log(res)
    // 将图片数据转换成base64格式
    var imageDataBase64 = res.stream.toString('base64');
    // 创建一个HTML页面显示图片
    var html = '';
    pm.visualizer.set(html);
});

 写好tests脚本之后点击一下send,你会发现二维码被我们渲染到visualize里面了

postman通过脚本配置动态token身份验证_第9张图片

然后你你可以把验证码输入到登录接口了,这样就不需要自己去浏览器手动copy token,方便吧!!!

你可能感兴趣的:(postman,测试工具)