【Postman】自动填充X-Authorization令牌token到请求头Headers中

【Postman】自动填充X-Authorization令牌token到请求头Headers中_第1张图片


本期目录

  • 1. 背景
  • 2. 使用方法
    • 1)设置全局环境变量
    • 2)设置测试环境
    • 3)编写Pre-request Script
    • 4)举例


1. 背景

  • 在大型互联网项目中,用户登录后都要返回一个 token 给客户端用于认证授权,存储在浏览器的本地存储中。以后每次发送请求,都必须在请求头中携带这一认证 token 才能正常获得服务器的响应。对于 Postman 测试来说,每测一个接口 URL 都要手动地在 Headers 中添加认证 token 是一件非常崩溃的事。
  • 本篇博文教你如何使用 Postman 的 Globals 全局变量、Environment 环境变量、Pre-request Script 自动获取最新 X-Authorization 的 token 并自动填充到所测试请求中 Headers 中。

2. 使用方法


1)设置全局环境变量

  • 全局变量 Global 是在整个 Workspace 中都能获取的变量。例如登录账号和密码。需要注意的是,全局变量可以被处于同一个 Workspace 中的任何人查看和编辑,因此对敏感涉密的信息要谨慎处理。点击右上角的小眼睛就能添加全局变量。

    【Postman】自动填充X-Authorization令牌token到请求头Headers中_第2张图片

  • 设置了三个全局变量,分别是登录系统的账号和密码,以及认证授权 token 。注意,username 账户和 password 密码这两个全局变量在【INITIAL VALUE】和【CURRENT VALUE】两个空中都必须填写,后面在【Pre-request Script】脚本中才能获取到这两个全局变量。

    【Postman】自动填充X-Authorization令牌token到请求头Headers中_第3张图片


2)设置测试环境

  • 主要是设置测试环境的 IP 地址和端口。

    【Postman】自动填充X-Authorization令牌token到请求头Headers中_第4张图片

  • 这样设置后,以后只要切换到【Dev】开发环境,输入请求的 URL 时,就能用 {{host}} 来替换 localhost:9090 了。


3)编写Pre-request Script

  • Pre-request Script 是 JavaScript 脚本,在请求被发送前,会首先执行这个脚本。Pre-request Script 可以给单个请求设置,也可以给整个 Collection 设置。笔者这里选择了后者,点击 Collection 名称即可进入编辑 Pre-request Script 的页面。

    【Postman】自动填充X-Authorization令牌token到请求头Headers中_第5张图片

  • 因此,我们编写这样一个脚本:在每次发送一个请求前,先发送一个 POST 请求去获取最新的 token ,获取 token 时使用 Global 全局变量中的账户和密码来登录系统,然后把这个 token 更新到 Global 全局变量中的 token 。

    【Postman】自动填充X-Authorization令牌token到请求头Headers中_第6张图片

    const getToken = {
        url: "http://localhost:9090/api/auth/login",
        method: "POST",
        header: 'Content-Type:application/json',
        body: {
            mode: "raw",
            raw: JSON.stringify({
                "username": pm.globals.get('username'),
                "password": pm.globals.get('password')
            })
        }
    };
    pm.sendRequest(getToken, function(err, res) {
        pm.globals.set("token", "Bearer " + res.json().token);
    });
    

4)举例

  • 现在我来测试一个获取设备列表的 GET 请求 API 。

    【Postman】自动填充X-Authorization令牌token到请求头Headers中_第7张图片

  • 点击【Send】后,成功获取数据。

    【Postman】自动填充X-Authorization令牌token到请求头Headers中_第8张图片

  • 此时查看 Console 控制台发现确实发送了 2 个请求。

    【Postman】自动填充X-Authorization令牌token到请求头Headers中_第9张图片

  • 第一个请求就是 Pre-request Script 中使用脚本发送的请求,用于获取认证 token 并存储到 Globals 全局变量 token 中。可以看到所测试的 GET 请求成功把 X-Authorization 的 token 存在请求头中。

    【Postman】自动填充X-Authorization令牌token到请求头Headers中_第10张图片

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