两种方法教你在postman设置哀求里动员态token

[复制链接]
发表于 2025-11-7 08:54:38 | 显示全部楼层 |阅读模式
题目形貌
在利用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"里:
  1. pm.test("Status code is 200", function () {
  2. pm.response.to.have.status(200);
  3. });
  4. var data = JSON.parse(responseBody);
  5. if (data.data.agpToken) {
  6. tests["Body has agpToken"] = true;
  7. pm.environment.set("devToken", data.data.agpToken);
  8. }
  9. else {
  10. tests["Body has agpToken"] = false;
  11. }
复制代码

然后,我们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方式实现,详细代码如下:
  1. let userInfo = {"username":"xxxx","password":"xxxx=="}
  2. let requestData = {
  3.     url: "http://localhost:8888/auth/login",
  4.     method: "post",
  5.     header: [
  6.         "Content-type: application/json"
  7.     ],
  8.     body: {
  9.         mode: "raw",
  10.         raw: JSON.stringify(userInfo)
  11.     }
  12. }
  13. pm.sendRequest(requestData, function(err, res){
  14.     let rst = res.json();
  15.     console.log(rst);
  16.     var tokenId = rst.data.tokenId; // 根据自己的返回json结构来获取
  17.     console.log(tokenId);
  18.     pm.environment.set("tokenId", tokenId);
  19. })
复制代码




这个地区同样有许多的脚本语言可以参考,详细看右侧,此处按下不表,我们在该哀求的pre-request script地区里加上以上脚本:

并在哀求头里带上devToken:

然后,我们去发送哀求:

查询乐成了,而且我们检察environment里的devToken,发现也被赋值了:

必要留意的是,这种设置动态参数的方式,必要在每个request的pre-request script地区里都加上该脚本。
 感谢每一个认真阅读我文章的人!!!
作为一位过来人也是渴望各人少走一些弯路,假如你不想再体验一次学习时找不到资料,没人解答题目,对峙几天便放弃的感受的话,在这里我给各人分享一些主动化测试的学习资源,渴望能给你进步的路上带来资助。

软件测试口试文档

我们学习肯定是为了找到高薪的工作,下面这些口试题是来自阿里、腾讯、字节等一线互联网大厂最新的口试资料,而且有字节大佬给出了权势巨子的解答,刷完这一套口试资料信托各人都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋侪来说应该是最全面最完备的备战堆栈,这个堆栈也陪伴我走过了最艰巨的旅程,渴望也能资助到你!以上均可以分享,点下方小卡片即可自行领取。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表