两种方法教你在postman设置请求里带动态token

问题描述

在使用postman调试接口时,遇到一些需要在请求里加上token的接口,若token出现变化,需要手动修改接口的token值,带来重复的工作量,翻看postman使用手册后,我发现了两种方法可以解决这个问题。

01 设置全局/环境变量传递

postman中有个全局变量功能,类似js语法中的全局变量,一旦设置了,就可以在每个接口中获取到值,环境变量的功能也类似。

这里以环境变量为例,说说解决思路:

  • 请求一次登录接口,得到token;

  • 在postman中新增一个环境变量devToken,将上一步获取到的token赋值给devToken;

  • 其他请求接口根据需要在请求时带上devToken

  • 如果 devToken显示过期,再次请求一次登录接口,这时会将新的token赋值给devToken

具体实现如下:

在postman中新增一个环境变量devToken

如图所示,打开最新版本的postman,然后点击Environments,就可以看到有Globals和下面的environment空白区域;

Globals区域一般用来存储不会随环境变化的参数而token一般会随环境变化,所以我们还是新建environment参数,点击 “+”:

可以看到多了一个"new environment",这里我们将名字修改为dev;

然后添加一个任意命名的变量(也可以后续在JavaScript脚本里添加,这里为了演示方便,先行添加了),我这里命名为“devToken”:

注意,不要添加initial value和current value,这些都会在我们请求登录接口后设置。

新增完成后,需要将当前环境设置一下:

将获取到的token赋值给devToken

postman在每个接口的Tests区域里,都可以用JavaScript对请求结果做断言结果验证:

如上图所示,右侧是一些常用的写法,这里不做展开阐述,我们用js脚本将验证结果写入到刚才设置的"devToken"里:

然后,我们send请求,再查看Test results区域,请求成功:

我们再查看environment里的devToken:

 currentValue里有值,说明设置成功 

其他请求接口根据需要在请求时带上devToken

如果你想要在其他接口用上devToken,应该写成{{devToken}},如下:

我这里是加在请求头里,其他地方也类似,可以看到,response里code是200,请求成功了。

02 获取预请求得到的token

 在每个请求中带上预请求,再获取预请求得到的token

这种解决方式,跟上一种的差别是,需要在每个请求中手动添加一个Pre-request script,会比较麻烦,不过可以保证获取到的token绝对不会过期,不需要多次请求登录接口,实现思路如下:

  • 通过预请求,类似于常见的先登录再访问的方式,预先请求登录接口,获得token;

  • 新建全局变量devToken,将第一步获得的token赋值给devToken,并在请求中带上devToken

具体实现方式如下:

新建全局变量devToken,同样,点击postman右侧菜单栏environment,然后点击“+”号,创建好后如下:

新增完成后,需要将当前环境设置一下:

预先请求登录接口,获得token,并将获得的token赋值给devToken

这一步通过postman的Pre-request script方式实现,具体代码如下:

这个区域同样有很多的脚本语言可以参考,具体看右侧,此处按下不表,我们在该请求的pre-request script区域里加上以上脚本:

并在请求头里带上devToken:

然后,我们去发送请求:

 

查询成功了,并且我们查看environment里的devToken,发现也被赋值了:

需要注意的是,这种设置动态参数的方式,需要在每个request的pre-request script区域里都加上该脚本。

 如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

 

### PostmanToken 请求头的作用 Token 请求头主要用于身份验证和授权,在客户端和服务端之间传递认证信息。通过在 HTTP 请求头部加入 `Authorization` 字段并附带有效的 token,服务端能够识别发出请求的身份合法性。 当使用 Postman 进行 API 测试时,可以通过设置全局或环境级别的变量来存储 token,并将其应用到所有需要鉴权的请求上[^1]。这样不仅简化了操作流程,还提高了工作效率,减少了因频繁更改 token 所带来的错误风险。 ### 设置 Token 的具体方法 #### 方法一:利用 Pre-request Script 自动获取 Token 并保存至环境变量 可以在特定请求前执行一段 JavaScript 脚本(Pre-request Script),这段脚本负责向服务器发起登录请求获得最新 token 后存入环境变量中供后续调用: ```javascript pm.sendRequest({ url: 'https://example.com/api/login', method: 'POST', header: { 'Content-Type': 'application/json' }, body: { mode: 'raw', raw: JSON.stringify({ username: "test", password: "password" }) } }, function (err, res) { let jsonData = res.json(); pm.environment.set("auth_token", jsonData.token); }); ``` 此代码片段展示了如何发送 POST 登录请求并将返回的结果中的 token 存储为名为 `auth_token` 的环境变量[^4]。 #### 方法二:直接定义静态 Token 或者其他方式动态生成 Token 如果已经拥有了固定不变的有效期较长的 token,则可以直接设定;对于那些有效期较短的情况,则可能需要用到更复杂的逻辑来自动生成新的 token[^3]。 一旦设置了上述任一种形式的 token 变量之后,在任何想要添加 Authorization 头部的地方都可以轻松引用它。只需前往 Headers 面板,选择 `Bearer Token` 类型,并输入相应的变量名即可完成配置。 ### 实际应用场景下的实现例子 假设有一个 RESTful Web Service 接口 `/protected-resource` ,只有经过适当授权后的用户才能访问其资源。此时就可以按照如下方式进行测试准备: 1. 创建一个新的 Collection; 2. 添加两个 Request 至该 Collection 下面——一个是用来获取 access-token 的 login request,另一个是用来实际调用受保护的服务 endpoint 的 protected resource request; 3. 对于前者来说,应该在其 pre-request script 中编写必要的代码去抓取最新的 token 值,并更新到当前 session 的 environment variables 当中; 4. 将后者里的 headers panel 里边的 authorization type 设定成 Bearer Token 形式,value 输入 {{auth_token}} 占位符表示会自动替换成为之前所取得的真实 token 数值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值