Node.js助力自动化Postman接口验签流程

发表时间: 2024-05-02 22:31


01

背景

  • 某业务服务端接口有验签逻辑、Postman调用接口自测加签麻烦。
  • 需要服务端多个环境域名切换测试。
  • 服务端接口部分需要登录后测试。

02

Pre-request Script简介

Postman 有一个基于 Node.js 的强大运行时,它允许我们向请求和集合中添加动态行为。允许我们编写 API 测试、构建可以包含动态参数的请求、在请求之间传递数据等等。可以添加两种情况下的 JavaScript 代码:

  1. 在请求发送到服务器之前,在“Pre-request Script”选项卡中编写预请求脚本;
  2. 收到响应后,在Test”选项卡中编写测试脚本。

03

脚本的执行顺序

在 Postman 中,单个请求的脚本执行顺序如下所示:

  • 预请求脚本将在发送请求之前执行;
  • 测试脚本将在发送请求后执行;


对于集合中的每个请求,脚本将按以下顺序执行:

  • 与集合关联的预请求脚本将在集合中的每个请求之前运行。
  • 与文件夹关联的预请求脚本将在文件夹中的每个直接子请求之前运行。
  • 与集合关联的测试脚本将在集合中的每个请求之后运行。
  • 与文件夹关联的测试脚本将在文件夹中的每个直接子请求之后运行。


04

操作步骤


加签


  • 可以针对一个collection统一编写一个前置脚本

  • 在Pre-request-script处编写前置脚本

使用javascript语句实现加签逻辑,在适当位置可以打印日志

  • 打开postman console查看加签结果

已经加签成功

多环境切换

  • 一个接口同时多个域名或环境测试,使用Postman的Environments功能实现
  • 首先定义环境变量
  • 目前有test和prod两个环境变量,可以定义两个环境

  • 定义具体的Variable

在这里我们定义变量为host,分别配置好test和prod的环境变量


  • 使用variable

在链接中直接使用postman语法{{key}}使用定义好的变量

  • 切换环境变量达到目的

登录后接口访问

  • 业务部分接口需要登录后访问,需要在header处增加jwttoken完成权限验证
  • 使用Postman的Tests功能实现header自动填充
  • 定义jwtToken变量
  • 在环境变量处定义变量即可

  • 在登录接口编写Tests脚本

拿到响应结果并设置于环境变量中

然后在接口中使用变量,

然后调用登录接口完成变量填充。



作者 | 张博文 高级服务端开发工程师

来源-微信公众号:微鲤技术团队

出处
:https://mp.weixin.qq.com/s/BmI0DJoLWqjIuSTLfcbVPg