在日常接口开发工作中,Postman作为一款强大的API开发工具,其基础功能为我们提供了极大的便利。然而,当涉及到一些三方接口调研测试工作时,我们需要利用Postman的高级功能,如脚本和变量,来实现自动化签名和参数替换,以提高工作效率。
文章导航
一、Postman基本概念
Postman的核心概念包括工作空间、收藏、文件夹、请求、环境、变量和脚本,它们共同构成了Postman强大的管理架构。具体如下:
- Workspaces(工作空间):独立管理收藏、API、环境。
- Collections(收藏):管理收藏、文件夹、请求、变量、脚本。
- Folders(文件夹)
- Requests(请求):管理请求API的地址、参数、变量、脚本。
- Environments(环境):管理变量、脚本。
- Variables(变量)
- Scripts(脚本)
二、Postman变量介绍
1、变量的定义和作用域
变量是Postman中提升工作效率的重要工具。它们可以在collections, environments, requests, scripts等多个层面上使用,变量在各个层面的作用域如下所示:
作用域:
- 全局变量:在整个workspace中起作用
- Collection变量:在整个collection中起作用
- 环境变量:随环境切换变化
- 数据变量:在 Newman和Collection Runner中起作用
- 本地变量:只在request中起作用
2、如何定义变量
一般通过直接添加变量或者在脚本中定义变量两种方法来实现有效定义变量。
直接添加变量
在脚本中定义变量
3、如何使用变量
1)使用两个大括号来引用变量:{{变量名}}
2)使用内置动态变量
{{$guid}} : 使用guid
{{$timestamp}}: 当前时间戳
{{$randomInt}}: 随机数(0-1000)
更多动态变量:https://learning.postman.com/docs/writing-scripts/script-references/variables-list/
3)在脚本中使用变量
- 访问所有作用域变量`pm.variables.get(“变量名”)`
- 访问指定作用域变量`pm.globals.get(“变量名”)`
- 使用`pm.variables.replaceIn(“带变量的字符串”)`主动替换变量
4)变量优先级
本地变量 > 数据变量 > 环境变量 > collection变量 > 全局变量。
三、Postman脚本功能
Postman提供的脚本功能基于Node.js,允许我们在请求执行前后进行自定义操作,极大地增强了接口测试的灵活性。
1、Postman脚本类型
Pre-request Script:在请求执行前运行,可以修改请求的参数。
Test Script:在请求执行后运行,用于处理响应数据。
2、Postman脚本级别
一共有三个级别的脚本:Collection、Folder、Request。
执行顺序如下:
3、Postman常用函数
//计算md5
CryptoJS.MD5("some string").toString()
//sha1
CryptoJS.HmacSHA1("Message", "Key").toString()
//sha256
CryptoJS.SHA256("some string").toString()
//aes加密
encryptedText = CryptoJS.AES.encrypt('message', 'secret').toString();
//aes解密
plainText = CryptoJS.AES.decrypt(encryptedText, 'secret').toString(CryptoJS.enc.Utf8);
//获取时间戳
parseInt((new Date()).valueOf()/1000)
//json转换
obj = JSON.parse(str)
str = JSON.stringify(obj)
//获取query参数
pm.request.url.query.get("param name")
//获取body
pm.request.body.toString()
pm.request.body.raw
//修改body
pm.request.body.raw = "new body"
更多Postman支持的js库:https://postman-quick-reference-guide.readthedocs.io/en/latest/libraries.html#node-js-libraries
相关文档
官方文档:Postman documentation overview | Postman Learning Center
咨询方案 获取更多方案详情