当前位置: 首页 > news >正文

【精通Postman接口测试】02-集合变量|环境变量|全局变量,批量运行原来这么简单(附图文+CLI实战)

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
🎯你正在阅读「接口测试从入门到跑路」系列文章🎯
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

🔥弹简特 个人主页

❄️个人专栏直通车:

  • 💻软件测试入门记
  • 📱野生测试修炼手册 | APP 专项测试笔记
  • 🔌接口测试从入门到跑路
  • 一个后端的 JavaEE 续命指南
  • 🛜网络原理续命手册

靠热爱去书写自己,靠勇敢去书写生活!
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨


🌟 博主简介:



文章目录:

  • 前言
  • 一、Postman集合变量、环境变量和全局变量
    • 1、 集合变量(Collection Variables)
      • 1.1 实战演练:论坛首页和登录
        • 1.1.1 接口文档
        • 1.1.2 开始测试
          • 1)对于访问首页接口:会返回鉴权码
          • 2)对于登录接口:需要携带鉴权码
    • 2、 环境变量(Environment Variables)
      • 2.1 实操演示
        • 1)设置环境变量
        • 2)在请求地址中使用`{{环境变量名}}`取环境变量的值
        • 3)在右上角选择对应的环境变量
    • 3、 全局变量(Globals)
    • 4、一句话总结表
  • 二、Postman批量运行接口测试
    • 1、方式一:手动运行
      • 1.1 右键项目名称点击Run
      • 1.2 设置各个属性
      • 1.3 运行之后会跳转到结果页面
      • 1.4 点击项目名称-->在点击runs查看运行结果
      • 1.5 解决批量运行文件上传失败的问题
    • 2、方式二:定时运行(不常用,了解即可)
    • 3、方式三:CLI命令行方式运行
      • 3.1 选择CLI命令方式
      • 3.2 下载CLI
      • 3.3 登录服务器
        • 1)登录需要密钥
        • 2)将命令复制到命令行登录服务器
      • 3.4 登录成功之后运行项目
      • 3.5 去Postman右键项目名称-->点击runs查看结果
        • 出现日志问题
        • 原因
  • 三、写在最后

前言

铁汁们,是不是经常遇到这种情况:上一个接口刚拿到的 token,下一个接口就翻脸不认人?或者开发小哥拍着胸脯说“我那儿能跑”,你扭头就是 404?别慌!今天咱不聊跑路,专门聊聊 Postman 里那三个让你“少改 100 遍 URL”的神器——集合变量、环境变量、全局变量。看完这篇,你也能在开发、测试、生产环境之间反复横跳,顺便把批量运行玩出花。走你~ 🚀


一、Postman集合变量、环境变量和全局变量

1、 集合变量(Collection Variables)

  • 定义:绑定在特定集合上的变量,只对该集合内的所有请求可见。
  • 作用范围:当前集合(一个项目中的所有接口共享)。
  • 生命周期:持久保存,随集合导入/导出,不会因环境切换而改变。
  • 典型使用场景
    • 同一项目内接口之间传递数据(如登录后提取tokentagId给后续接口使用)。
    • 存放集合共享的固定值(如固定的userIdshopId)。
  • 优点:不影响其他集合,避免变量污染。
  • 设置方法
    pm.collectionVariables.set("token","abc123");
    使用:{{token}}

1.1 实战演练:论坛首页和登录

1.1.1 接口文档

简要描述:访问论坛首页接口

请求URL:http://47.107.116.139/phpwind/

请求方式:GET

参数:无参数

返回示例:因返回的HTML脚本太多,故不写到此接口文档中!

返回参数说明

  1. 返回的HTML源码中包含csrf_token鉴权码,示例:
<inputtype="hidden"name="csrf_token"value="bb77911d24b47537"/>
  1. 返回响应头Cookie中包含csrf_token鉴权码,示例:
csrf_token:bb77911d24b47537

简要描述:登录接口

请求URL:http://47.107.116.139/phpwind/index.php?m=u&c=login&a=dorun

请求方式:POST

必须带的请求头:

参数名必选说明
Acceptapplication/json, text/javascript,/; q=0.01客户端接收的数据类型
X-Requested-WithXMLHttpRequest异步请求

请求参数:

参数名必选类型说明备注
usernamestring用户名你报名时填写的手机号码,如果不对找班主任
passwordstring密码你报名时填写的手机号码,如果不对找班主任
csrf_tokenstring鉴权码从【访问phpwind论坛首页接口】接口返回值或响应头Cookie中获取
backurlstring来源填写:http://47.107.116.139/phpwind/
invitestring邀请不填写值

返回示例:
{"referer":"http%3A%2F%2F47.107.116.139%2Fphpwind%2Findex.php%3Fm%3Du%26c%3Dlogin%26a%3Dwelcome%26_statu%3DRGt3M2NhUmpmaUU5RCUyRnlSbE5OdkdNNE9adllUMGw5ZFdvRHFMYm01RlBMSk5hV1E3b1ZaayUyRk5vRHhOUkthMUx8aHR0cDovLzQ3LjEwNy4xMTYuMTM5L3BocHdpbmQvfA","refresh":false,"state":"success","data":"","html":"","message":[""],"__error":""}

返回参数说明:

参数名类型说明
statestring是否登录成功标识,success为成功;fail为失败
1.1.2 开始测试
1)对于访问首页接口:会返回鉴权码

注意:我们本次演示的是接口关联中的集合变量作用域,至于接口关联的具体详细信息参考第一篇博客👉接口关联(万字图文,零基础保姆级)

a、构造请求四要素:请求URL+方式+头+体

b、发送请求,得到结果

c、搜索出返回的鉴权码

d、首先获取返回的text文本对象

e、使用正则表达式提取token值(提取第一个接口中返回的鉴权码)

f、将目标值变为(.*?)

g、获取到对应的鉴权码值

h、将鉴权码设置为集合变量

2)对于登录接口:需要携带鉴权码

a、构造请求:请求路径+方式+请求头+请求体(里面可能包含请求参数)


b、获取鉴权码使用{{名称}}获取

c、发送请求并看结果


那么总之你记住,咱的集合变量 就是 当前项目下的所有接口共享的


2、 环境变量(Environment Variables)

  • 定义:绑定在用户创建的某个环境上的变量,切换环境时,对应的变量值会整体替换。
  • 作用范围:当前选中的环境(如开发环境、测试环境、预发布环境、生产环境)。
  • 生命周期:持久保存,可手动创建/删除/切换。
  • 典型使用场景
    • 多环境切换:同一套接口,在不同服务器地址(IP/域名)下测试。
    • 解决“测试人员报错,开发人员说正常”的问题 —— 只需切换环境变量中的base_url,无需修改请求路径。
  • 示例
    • 开发环境:base_url = http://dev.example.com
    • 测试环境:base_url = http://test.example.com
    • 请求中写:{{base_url}}/api/login
  • 设置方法
    pm.environment.set("base_url","http://test.example.com");
    使用:{{base_url}}

铁汁,咱通俗点讲:开发、测试、预发布……环境一大堆,想来回切换测接口,就得用环境变量。

比如测试老妹说接口报错,开发小哥说他本地调得好好的——这时候环境变量就出来了。配两个环境:一个“开发”、一个“测试”,同一个请求里随便切。开发环境和测试环境差别就一个:IP地址(或域名)不一样,其他都一样。所以把地址抽成变量,切换就完事了。

2.1 实操演示

使用环境变量分三步:

  • 第一步:设置环境变量
  • 第二步:在请求地址中使用{{环境变量名}}取环境变量的值
  • 第三步:在右上角选择对应的环境变量
1)设置环境变量

接下来根据我的步骤,一步一步的操作,如图所示👇

a、首先设置开发环境

b、然后再创建一个测试环境




c、注意环境变量名必须一致

2)在请求地址中使用{{环境变量名}}取环境变量的值


一图解释为什么需要这样做

但是你只是选择我们的变量,没有达到我们测试的效果的,你还得指定你要选择的是开发环境还是测试环境,此时就进入我们的第3步👇

3)在右上角选择对应的环境变量

a、点击图中的东西

b、点击选择环境

c、选择你需要的测试的环境


d、解释原理

f、运行看结果


3、 全局变量(Globals)

  • 定义:在整个 Postman 工作区(所有集合或者所有项目、所有环境)中全局唯一、共享的变量。
  • 作用范围:当前登录账号下的所有集合、所有环境。
  • 生命周期:持久保存,除非手动删除。
  • 典型使用场景
    • 极少使用,因为容易造成变量污染(不同集合相互覆盖)。
    • 仅建议用于真正需要跨集合共享的数据(如跨项目的测试账号 token,但通常不推荐)。
  • 缺点:多人协作或同时跑多个集合时,变量值可能被意外覆盖,导致结果混乱。
  • 设置方法
    pm.globals.set("global_var","some value");
    使用:{{global_var}}

4、一句话总结表

变量类型作用范围生命周期推荐用途是否常用
集合变量当前集合持久接口关联(传 token、id 等)⭐⭐⭐⭐⭐
环境变量当前选中的环境持久切换开发/测试/生产环境地址⭐⭐⭐⭐⭐
全局变量整个工作区持久尽量避免使用

到此为止,我们单个去执行我们的接口基本上没有问题的,但是我们如果想批量去运行接口,怎么做呢?老铁们,继续往下看👇


二、Postman批量运行接口测试

Postman批量运行接口测试有三种方式

1、方式一:手动运行

1.1 右键项目名称点击Run

1.2 设置各个属性

1.3 运行之后会跳转到结果页面

1.4 点击项目名称–>在点击runs查看运行结果




1.5 解决批量运行文件上传失败的问题

你看对于文件上传我们报错了:

失败的原因就是你的文件他找不到,因为你的文件是存在本地的,而你批量执行接口是我们Postman服务器给你干的事情。

因此你得先把你的文件上传到Postman的服务器里面去👇




此时再次批量运行,那么对于文件上传就会成功👇

提示:批量运行记得将你的接口保存好

结果:

2、方式二:定时运行(不常用,了解即可)

这个定时运行我们一般不会使用,因为我们有一个比他好用的就是做持续集成的时候使用Jenkins也可以完成定时运行,这里我们对它的功能做简单的介绍👇

3、方式三:CLI命令行方式运行

3.1 选择CLI命令方式

3.2 下载CLI


复制命令安装

默认安装路径是:


win+r 输入cmd,再将命令粘贴到里面如下:


验证是否安装成功:postman --version

3.3 登录服务器

根据Postman提示

1)登录需要密钥


点击创建👇

输入名字

点击插入👇

常见问题:密钥创建失败,此时是因为你创建的密钥个数受到限制了,那么你根据他的提示删除之前不用的秘钥即可

2)将命令复制到命令行登录服务器


粘贴到命令行执行登录操作

登录成功之后,我们就开始运行项目了

3.4 登录成功之后运行项目

复制命令

开始指向命令,然后运行项目👇

3.5 去Postman右键项目名称–>点击runs查看结果


出现日志问题

原因

也就是说他有他自己的设计场景,不用去纠结。


OK,各位铁汁,本期「变量+批量运行」就硬核到这里啦~下一期咱整点更刺激的:结果断言 + 数据驱动,让你一键跑完几十条用例,还能自动判断对错。记得点个关注,咱下期不见不散!🎉


三、写在最后

🎯看到这里,辛苦啦!歇一歇,喝口水,让眼睛放松一下

这篇笔记我写了很久,如果对你有哪怕一点点帮助,请点一下「关注」

后面我还会继续分享很多自学干货笔记,都是自己边学边总结的,依然会是零基础能看懂、每一步都截图的那种详细笔记

我是学生,没什么能送你的,只能保证每一篇都认真写、不藏私。
我能给的,就是一篇一篇亲手整理的、零基础也能看懂的干货笔记。

你的每一次关注,都是我继续写下去的动力。

谢谢你的时间,我们下一篇笔记见 👇
(如果这篇笔记有写错的地方,也请一定在评论区告诉我,我会第一时间修改)

下一篇见咯,兄弟们~~


http://www.jsqmd.com/news/748225/

相关文章:

  • v音频转换成文字在线怎么操作?2026年5款在线音频转文字工具实测方法
  • 2026西南墙绘浮雕服务标杆名录:会有时文化/别墅家装壁画/博物馆展馆壁画/商业墙绘彩绘壁画/墙体彩绘公司/墙体绘画墙/选择指南 - 优质品牌商家
  • 三生原理文章被AtomGit‌开源社区收录的意义探析?
  • 免费开源:用League Director制作专业级《英雄联盟》高光视频的完整指南
  • 2026TPO片材挤出机专业推荐名录:TPO造粒机/TPU片材挤出机/低烟无卤电缆料造粒机/水环造粒机/硅烷交联电缆料造粒机/选择指南 - 优质品牌商家
  • 从零开始通过 Taotoken 控制台完成注册获取密钥与首次调用的全过程
  • 外包第一天就“看顺眼”组长,这事比需求变更还危险
  • 录音实时转文字软件有哪些?2026年这5款软件转写能力对比排行
  • FLM与FMLM:连续去噪技术在语言建模中的突破
  • 仿照Muduo的高并发服务器:EventLoop模块及与TimeWheel模块联调
  • 基于Roslyn的C#代码库智能体导航地图生成器设计与实现
  • 内存增强语言模型:TRIBL2与IGTree架构对比与实践
  • 强化学习中推理长度的动态优化策略与实践
  • 终极指南:用RPFM轻松打造你的《全面战争》梦想模组
  • 2026.05.03
  • 告别连接难题:手把手教你用wpa_supplicant和iw工具配置SSV6x5x WiFi的Station模式
  • AI文本人性化:从技术原理到本地部署的完整实践指南
  • Cursor智能体开发:令牌与定价
  • 基于Next.js与Zustand的AI对话应用框架:lobe-chat架构解析与部署指南
  • AutoSar新手避坑:用Vector工具链配置1字节NV Block的完整流程(附Lauterbach调试实录)
  • 大语言模型文本检测:DMAP技术原理与应用
  • 文化与文明是两回事!弄不懂这一点,再努力也是“庸人自扰”
  • 3分钟彻底掌控Windows Defender:开源工具Defender Control深度解析
  • 基于AI代理的Discord流媒体机器人:架构、部署与实战
  • 旧版本 Nacos 客户端连接新版本服务端报错版本不匹配怎么解决
  • 2026届必备的五大AI辅助写作网站实际效果
  • Degrees of Lewdity中文美化整合包:一键打造你的专属游戏体验
  • AI代码生成评估新标准:NL2Repo-Bench详解
  • Java之循环结构
  • 手把手教你用R绘制NCA天花板线与瓶颈表:一份面向实证研究者的实操指南