作者:唐叔在学习
标签:#Postman变量 #Postman技巧 #API测试 #测试自动化 #多环境配置 #开发效率
大家好,我是唐叔,今天给大家带来Postman中变量使用的详细教程。作为一名API测试老司机,我深知变量在接口测试中的重要性。合理使用变量不仅能提高测试效率,还能让我们的测试脚本更加灵活、可维护。下面就来跟我一起探索Postman变量的奥秘吧!
文章目录
一、什么是Postman变量?
简单来说,Postman变量就是用来存储值的容器,可以在请求、脚本和测试中重复使用。想象一下,如果你每次请求都要手动修改URL、请求头或请求体中的某些值,那得多麻烦啊!变量就是来解决这个问题的。
Postman支持多种变量类型,每种类型有不同的作用域和使用场景:
- 全局变量(Global Variables):整个Postman环境都可访问
- 环境变量(Environment Variables):特定环境下的变量
- 集合变量(Collection Variables):仅限特定集合内使用
- 局部变量(Local Variables):仅在单个请求或脚本中有效
- 数据变量(Data Variables):从外部文件导入的变量
二、环境变量:多环境切换的利器
在实际开发中,我们通常会有多个环境:开发环境、测试环境、预发布环境、生产环境等。每个环境的API地址、认证信息可能都不同。这时候环境变量就派上用场了!
1. 创建和管理环境
点击Postman右上角的"Environments"按钮,可以创建新环境。比如我创建了"Dev"、"Local"和"Prod"三个环境。
# Dev环境变量示例
base_url: https://api-dev.example.com
token: dev_token_123
# Local环境变量示例
base_url: http://localhost:8080
token: test_token_456
# Prod环境变量示例
base_url: https://api.example.com
token: prod_token_789
2. 在请求中使用环境变量
在请求URL、Headers或Body中,可以用双花括号引用变量:
{{base_url}}/info
这样切换环境时,Postman会自动替换为对应环境的变量值,是不是很方便?
三、全局变量:随处可用的"万金油"
全局变量在任何地方都可以访问,非常适合存储一些跨环境、跨集合的通用值,也非常适合测试和原型制作。
1. 设置全局变量
可以通过以下几种方式设置全局变量:
-
方式一:在"Globals"标签页手动添加
-
方式二:在脚本中使用
pm.globals.set()
方法// 在Pre-request Script或Tests脚本中设置全局变量 pm.globals.set("api_version", "v1");
2. 使用全局变量
和引用环境变量一样,用双花括号:
{{api_version}}/info
不过唐叔要提醒大家:全局变量虽好,但不要滥用哦!因为它可能会被意外修改,导致难以追踪的问题。
四、集合变量:团队协作的好帮手
集合变量是定义在特定集合中的变量,只有该集合内的请求可以访问。
1. 设置集合变量
在集合的"Variables"标签页添加:
collection_token: abc123
或者通过脚本:
pm.collectionVariables.set("max_retry", 3);
2. 使用集合变量
{{collection_token}}
集合变量特别适合团队协作时使用,可以把一些集合相关的配置集中管理。
五、局部变量:临时存储的"小能手"
局部变量只在单个请求的执行过程中有效,请求结束后就会被清除。
1. 设置局部变量
只能在脚本中设置:
pm.variables.set("temp_value", "123");
2. 使用局部变量
{{temp_value}}
局部变量适合存储一些临时计算结果或中间值。
六、数据变量:自动化的大杀器
数据变量来自外部 CSV
和 JSON
文件,用于 Collection Runner
运行集合时可以使用的数据集。数据变量具有当前值,这些值不会在请求或 collection run 之后持续存在。
1. 设置数据变量
撰写 json
或 csv
数据文件,以 json
文件为例:path
标识 url
路径,value
标识变量值。
[
{
"path": "info",
"value": "1"
},
{
"path": "info",
"value": "2"
},
{
"path": "info",
"value": "3"
},
{
"path": "info",
"value": "4"
}
]
请求中设置数据变量
2. 使用数据变量
为了更好的说明,下面使用 gif
图示例。
数据变量很适合用于自动化批量测验接口时的数据生成。
七、动态变量:Postman自带的"工具箱"
Postman还提供了一些内置的动态变量,可以生成随机数据:
{{$guid}} // 生成GUID
{{$timestamp}} // 当前时间戳
{{$randomInt}} // 随机整数
这些在测试需要随机数据的场景时特别有用!
八、变量优先级:谁说了算?
当不同作用域的变量同名时,Postman会按照以下优先级解析:
记住这个顺序,遇到变量冲突时就知道怎么排查了!
九、实战技巧:唐叔的小贴士
- 命名规范:建议使用小写字母和下划线组合,如
api_token
、base_url
- 变量继承:环境可以继承其他环境的变量,便于管理公共配置
- 批量导入:可以通过JSON文件批量导入变量,适合初始化环境
- 变量监控:在Postman控制台可以查看变量变化,方便调试
- 安全提示:敏感信息如密码、token建议使用变量,但不要提交到版本库
十、总结
今天唐叔带大家全面了解了Postman中的变量系统。合理使用变量可以:
- 提高API测试效率
- 简化多环境切换
- 增强脚本可维护性
- 方便团队协作
记住,变量是Postman的灵魂功能之一,掌握好它,你的API测试水平就能更上一层楼!
最后留个思考题:在一个大型项目中,如何组织管理上百个变量?欢迎在评论区分享你的经验!
我是唐叔,我们下期再见!