postman的使用——通过脚本获取Headers中的value作为变量

在学习本文之前默认读者已经知道变量的作用。
之前在使用postman进行接口测试时需要用到登录token进行登录校验。一般操作是我们需要先调用一遍登录接口,拿到token后再将token放置到待测接口的headers里作为参数在请求时一并传入。但是这种方法相对来说操作比较麻烦,而且有时候如果某个接口对token进行了某种更严格的限定,那么每次传入相同的token可能就不太合理。于是我就考虑能不能使用脚本简化这个修改token的过程。但是在网上找了一通之后发现很少有类似的方法。唯一一个还是个付费。。。
于是就想自己试着写一下,于是有了下面的脚本。
其实很简单:

/*var response=JSON.parse(responseBody);
pm.environment.set("aha",response.defmap.UserSettings.file_noimg);*///此处被注释掉的代码块是从body中获取参数加入到环境变量中

var header_token = postman.getResponseHeader("x-auth-token");
pm.environment.set("x-auth-token",header_token);

意义上就是所有的代码,将这段代码放到tests中,发送请求即可将请求头里的token字段加入到环境变量中,当然也可以加入到全局变量中,只需要修改一下最后一行即可。(token字段的key值可能略有不同,视实际情况而定。)

以上就是借助脚本将token加入到环境变量中的具体方法。若有不足之处敬请指正。

首先,您需要了解如何在Postman中编写JavaScript脚本使用环境变量。 以下是一个简单的脚本示例,该脚本可以在每次请求之前动态获取访问令牌: ```javascript // 定义请求头 pm.request.headers.add({ key: 'Authorization', value: `Bearer ${pm.environment.get('access_token')}` }); // 如果令牌不存在或已过期,则获取新的令牌 if (!pm.environment.get('access_token') || Date.now() >= pm.environment.get('expires_at')) { // 构建获取令牌的请求 const request = { url: 'https://your-auth-service.com/token', method: 'POST', header: 'Content-Type: application/json', body: { mode: 'raw', raw: JSON.stringify({ grant_type: 'client_credentials', client_id: 'your-client-id', client_secret: 'your-client-secret' }) } }; // 发送请求 pm.sendRequest(request, (err, res) => { if (err) { console.error(err); } else { // 将响应中的令牌信息保存到环境变量中 const responseJson = res.json(); pm.environment.set('access_token', responseJson.access_token); pm.environment.set('expires_at', Date.now() + responseJson.expires_in * 1000); } }); } ``` 该脚本的工作原理如下: 1. 首先,它在请求头中添加了一个`Authorization`头,该头包含了当前环境变量中存储的访问令牌。 2. 接着,它检查当前环境变量中是否存在访问令牌,以及令牌是否已过期。如果是,则执行以下操作: 1. 构建一个获取访问令牌的POST请求,其中包含客户端ID和密钥。 2. 发送请求,并在响应中提取访问令牌和其到期时间。 3. 将访问令牌和其到期时间保存到环境变量中,以备下一次请求使用。 请注意,此脚本仅用于演示目的。您可能需要根据您的特定情况进行修改和调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值