使用postman的预请求脚本实现自动刷新接口凭证(代码片段)

程序员小捣 程序员小捣     2022-12-06     670

关键词:

Postman 是一个可以帮你甚至你的团队快速开发 API 的工具。
  近期,在 Postman 上发现一个非常不错的功能 - 预请求脚本(Pre-request Script),即在一个 Request 请求之前可以写 JavaScript 脚本做自动化的任务。
  本文将主要介绍如何使用预请求脚本实现自动刷新接口凭证。
  关于 Postman
  Postman 是一个为接口开发的可以多人协作的平台。Postman 的各种功能可以很好地简化构建一个接口的步骤和提高团队协作的效率,从而以更快的速度去创造更好的接口!

预请求脚本
  在预请求脚本里,由 pm 这个对象提供大部分重要的功能,包括 pm.environment、pm.sendRequest 等,可以用于测试我们的请求内容和响应结果。
  在 Postman 中,你可以创建一个 Environment 的集合,使用 Environment 可以统一设置一些变量,比如 baseUrl,然后在 Request 的地址栏像下面这样使用:

baseUrl/user/get   这时,在预请求脚本里,我们可以通过下面的方式获取和设置 Environment 的内容:
  // 获取 token 环境变量   const token = pm.environment.has(‘token’)   // 设置
token 环境变量   pm.environment.set(‘token’, ‘xxx’)

自动刷新接口凭证
  现在有一个场景:某个接口服务要求请求是需要带上凭证 token,而且这个 token 的有效期只有两小时,如果没有预请求脚本,我们需要每隔两小时重新获取一次 token,这个动作是手动,所以显得十分繁琐。
  但是有了预请求脚本,我们可以在接口集合 Collections 下设置预请求脚本,让接口集合下的所有请求 Request 执行前都会先执行预请求脚本,这个预请求脚本会自动获取接口凭证 token,并设置到环境变量中,此时,接口请求就是正确的了!
  下面是我写的预请求脚本:

const d = new Date();   const t = d.getTime();   const
lastRefreshTokenTime =
parseInt(pm.environment.get(“lastRefreshTokenTime”));   if
(t-lastRefreshTokenTime < 3600000)
   return      const url = pm.environment.replaceIn("baseURL/api/refreshToken")   const req =

   url: url,
   method: ‘POST’,
   header:
   ‘Content-Type’: ‘application/json’
   ,
   body:
   mode: ‘raw’,
   raw: JSON.stringify(
   appId: pm.environment.get(‘AppID’),
   appSecret: pm.environment.get(‘AppSecret’)
   )
     ;   pm.sendRequest(req, function (err, response)
   if (response.code === 200)
   const data = response.json()
   pm.environment.set(‘token’, data.token)
   pm.environment.set(‘lastRefreshTokenTime’, t)
   return
  
   console.log(Error: $response)   );

上面的预请求脚本除了会自动刷新 token 外,还会通过环境变量 lastRefreshTokenTime 判断上一次获取 token 的时间,如果时间间隔超过一个小时,才会刷新 token 并设置 lastRefreshTokenTime 为当前时间戳,否则说明 token 仍有效,不会去刷新 token。

最后:【可能给予你一定的帮助】

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
关注我的微信公众号【软件测试小dao】免费获取~

我的学习交流群:644956177 群里有技术大牛一起交流分享~

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

postman的预请求脚本(代码片段)

...示,在Headers中通过使用timestampHeader来传递变量。  Postman提供了预请求脚本的功能,这极大地方便了用户的测试,可能部分用户看到脚本开始担心了,例如,不会使用JavaScript,不知道pm、Environment等关键... 查看详情

如何在 PostMan 的预请求脚本中计算 md5 哈希?

】如何在PostMan的预请求脚本中计算md5哈希?【英文标题】:Howtocomputeamd5hashinapre-requestscriptinPostMan?【发布时间】:2015-05-1313:39:18【问题描述】:我必须在我的请求中设置一个参数,它是其他两个参数的md5哈希。我认为预请求脚本... 查看详情

postman进阶——测试脚本的编写

...如何自动判断响应是否正确?这就需要用到Tests的知识。postman支持javascript,允许测试人员给请求和集合添加动态行为,通过使用javascript脚本,可以构建包含动态参数的请求,在请求之间传递数据。可以在下面两个事件流中添加j... 查看详情

使用postman实现接口数据关联

首先下载安装Postman直接打开官网,点击下载按钮即可完成下载https://www.getpostman.com/downloads/栗子业务场景:用户登录医生账户,查询自己的处方列表数据;用户登录成功后,服务端返回一个token,客户端在查询列表数据的请求heade... 查看详情

postman使用--断言(代码片段)

前戏在我们测接口的时候,没有断言的接口都是耍流氓,因为做自动化的时候,不加断言我们不知道这个接口是执行成功了还是执行失败了,所以断言是做接口自动化必须的断言断言就是我们预期值和接口返回值是否一样,就和... 查看详情

postman的测试脚本

测试脚本一、前言二、Tests基础知识一、前言  Postman工具借助测试脚本来帮助用户自动判断接口请求是否正确,相对于LoadRunner工具中的检查或者Jmeter中的断言公能。二、Tests基础知识  如果将与请求脚本看成是接口的前... 查看详情

在 Postman 预请求脚本中生成 RSA JWT

】在Postman预请求脚本中生成RSAJWT【英文标题】:GeneratingRSAJWTinPostmanPre-requestscript【发布时间】:2019-10-0910:37:39【问题描述】:我有以下预请求脚本,我正在使用它来尝试为GoogleApi生成JWT-Google使用RS256加密,我认为这是我卡住的... 查看详情

postman和接口自动化测试(代码片段)

1、postman测试接口(1)首先安装postman下载地址:https://www.getpostman.com/apps选择对应版本下载,然后安装即可(2)使用postman发送请求比如以下这个请求例子:使用postman发送请求:这样我们可以看到请求返回的内容是否正确。如果... 查看详情

在postman脚本中发送请求(pm.sendrequest)(代码片段)

Postman的Collection(集合)/Folder(集合的子文件夹)/Request(请求)都有Pre-requestscript和Tests两个脚本区域,分别可以在发送请求前和请求后使用脚本(基于Javascript实现各种操作)在遇到有依赖的接口时,比如需要登录或者需要从前一个接口的结... 查看详情

postman测试沙箱

参考技术APostman沙箱是一个JavaScript执行环境,当你为请求编写预请求脚本或测试脚本时,编写的脚本在这个沙箱中进行。就是结合了JS脚本完成测试中的功能,在请求发起前后实现部分测试操作。接口请求之前执行的脚本。接口... 查看详情

postman+newman+jenkins持续集成接口自动化测试脚本

...以说是最低级的测试。那么本章节给大家介绍一种自动跑postman脚本的方法。使用Newman配合Jenkins来自动执行postman工具调试好了的脚本,以达到实时监控项目接口运行状态的目的。首先,需要安装的一个工具是nodejs,而且根据GitHub... 查看详情

postman+newman脚本化接口测试(代码片段)

...变量与环境变量全局变量只有一组,环境变量可以有多组;postman先尝试从环境变量中获取变量,获取不到则尝试从全局变量中获取变量;使用少的,建议使用全局变量;使用多的,建议使用环境变量 查看详情

postman安装与使用以及自动化测试

Postman安装与使用postman是常用的API调试工具,主要用于开发人员调试接口以及测试人员做接口测试,官网地址:https://www.getpostman.com/安装:https://www.getpostman.com/apps使用:postman主界面: 简单的post请求(1) 选择请求方式(2) ... 查看详情

postman使用js脚本实现请求时加密(代码片段)

...密。1.如何在请求完成后,执行脚本  我们需要在Postman的Tests一栏中写入脚本。  这个时候你就会问了,如果我这里的结果,另一个请求的时 查看详情

postman接口测试07_导出测试脚本

前言使用postman进行接口测试的过程中,发现postman还有一个很强大的功能,可以导出测试脚本,支持C、C#、java、python...等多种格式的脚本,为接口自动化提供了很大的便利。导出测试脚本接口详情页->点击code 选择脚本语言... 查看详情

postman测试接口通过脚本动态设置请求头参数

参考技术A1、设置环境变量appId和secret2、设置脚本 查看详情

python接口自动化测试:postman使用-用例执行(代码片段)

...,没有断言就相当于没有预期结果是不完整的,Postman给我们提供了方便的断言方式可以通过JS脚本来编写Pre-requestScript和TestsScriptPre-request Script:预置脚本,可以用来修改一些默认参数,在请求发送之前,有点... 查看详情

postman初级使用

准备阶段&工具安装Postman安装Chrome浏览上的PostmanInterceptor插件(可选)安装Charles(可选)了解tv4语法以及jsonschema语法tv4:https://github.com/geraintluff/tv4jsonschema:http://json-schema.orgJenkins部署设置环境常量打开postman,进入右上角的... 查看详情