1. 背景
- 在大型互联网项目中,用户登录后都要返回一个 token 给客户端用于认证授权,存储在浏览器的本地存储中。以后每次发送请求,都必须在请求头中携带这一认证 token 才能正常获得服务器的响应。对于 Postman 测试来说,每测一个接口 URL 都要手动地在 Headers 中添加认证 token 是一件非常崩溃的事。
- 本篇博文教你如何使用 Postman 的 Globals 全局变量、Environment 环境变量、Pre-request Script 自动获取最新 X-Authorization 的 token 并自动填充到所测试请求中 Headers 中。
2. 使用方法
1)设置全局环境变量
-
全局变量 Global 是在整个 Workspace 中都能获取的变量。例如登录账号和密码。需要注意的是,全局变量可以被处于同一个 Workspace 中的任何人查看和编辑,因此对敏感涉密的信息要谨慎处理。点击右上角的小眼睛就能添加全局变量。
-
设置了三个全局变量,分别是登录系统的账号和密码,以及认证授权 token 。注意,
username
账户和password
密码这两个全局变量在【INITIAL VALUE】和【CURRENT VALUE】两个空中都必须填写,后面在【Pre-request Script】脚本中才能获取到这两个全局变量。
2)设置测试环境
-
主要是设置测试环境的 IP 地址和端口。
-
这样设置后,以后只要切换到【Dev】开发环境,输入请求的 URL 时,就能用
{{host}}
来替换localhost:9090
了。
3)编写Pre-request Script
-
Pre-request Script 是 JavaScript 脚本,在请求被发送前,会首先执行这个脚本。Pre-request Script 可以给单个请求设置,也可以给整个 Collection 设置。笔者这里选择了后者,点击 Collection 名称即可进入编辑 Pre-request Script 的页面。
-
因此,我们编写这样一个脚本:在每次发送一个请求前,先发送一个 POST 请求去获取最新的 token ,获取 token 时使用 Global 全局变量中的账户和密码来登录系统,然后把这个 token 更新到 Global 全局变量中的 token 。
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 。
-
点击【Send】后,成功获取数据。
-
此时查看 Console 控制台发现确实发送了 2 个请求。
-
第一个请求就是 Pre-request Script 中使用脚本发送的请求,用于获取认证 token 并存储到 Globals 全局变量
token
中。可以看到所测试的 GET 请求成功把 X-Authorization 的 token 存在请求头中。文章来源:https://www.toymoban.com/news/detail-785272.html文章来源地址https://www.toymoban.com/news/detail-785272.html
到了这里,关于【Postman】自动填充X-Authorization令牌token到请求头Headers中的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!