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

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

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

🔥 弹简特 个人主页

❄️ 个人专栏直通车:

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

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨


🌟 博主简介:


文章目录:

前言

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


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

1、 集合变量(Collection Variables)

  • 定义:绑定在特定集合上的变量,只对该集合内的所有请求可见。

  • 作用范围:当前集合(一个项目中的所有接口共享)。

  • 生命周期:持久保存,随集合导入/导出,不会因环境切换而改变。

  • 典型使用场景

    • 同一项目内接口之间传递数据(如登录后提取 tokentagId 给后续接口使用)。
    • 存放集合共享的固定值(如固定的 userIdshopId)。
  • 优点:不影响其他集合,避免变量污染。

  • 设置方法

    js 复制代码
    pm.collectionVariables.set("token", "abc123");

    使用:{``{token}}

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

1.1.1 接口文档

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

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

请求方式:GET

参数:无参数

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

返回参数说明

  1. 返回的HTML源码中包含csrf_token鉴权码,示例:
html 复制代码
<input type="hidden" name="csrf_token" value="bb77911d24b47537"/>
  1. 返回响应头Cookie中包含csrf_token鉴权码,示例:
js 复制代码
csrf_token:bb77911d24b47537

简要描述:登录接口

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

请求方式:POST

必须带的请求头:

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

请求参数:

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

返回示例:

js 复制代码
{"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":""}

返回参数说明:

参数名 类型 说明
state string 是否登录成功标识,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
  • 设置方法

    js 复制代码
    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,但通常不推荐)。
  • 缺点:多人协作或同时跑多个集合时,变量值可能被意外覆盖,导致结果混乱。

  • 设置方法

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


三、写在最后

🎯 看到这里,辛苦啦!歇一歇,喝口水,让眼睛放松一下
这篇笔记我写了很久,如果对你有哪怕一点点帮助,请点一下「关注」
后面我还会继续分享很多自学干货笔记,都是自己边学边总结的,依然会是零基础能看懂、每一步都截图的那种详细笔记
我是学生,没什么能送你的,只能保证每一篇都认真写、不藏私。
我能给的,就是一篇一篇亲手整理的、零基础也能看懂的干货笔记。
你的每一次关注,都是我继续写下去的动力。
谢谢你的时间,我们下一篇笔记见 👇
(如果这篇笔记有写错的地方,也请一定在评论区告诉我,我会第一时间修改)

下一篇见咯,兄弟们~~


相关推荐
DevilSeagull19 小时前
电脑上安装的服务会自动消失? 推荐项目: localhostSCmanager. 更好管理你的服务!
测试工具·安全·react·vite·localhost·hono·trpc
弹简特1 天前
【精通Postman接口测试】01-基础理论+安装使用+项目实战+接口关联(万字图文,零基础保姆级)
测试工具·postman·接口关联
武帝为此2 天前
【Selenium 屏幕截图】
python·selenium·测试工具
武帝为此2 天前
【Selenium 执行 JavaScript】
javascript·selenium·测试工具
llilian_162 天前
晶体频率测试仪 破解晶振品控核心难题:晶体频率网络测试仪深度解析 晶体网络分析仪
网络·功能测试·单片机·嵌入式硬件·测试工具·51单片机
深念Y2 天前
从 Playwright/Selenium 到指纹浏览器:浏览器自动化技术的进阶之路
selenium·测试工具·自动化·浏览器·账号·无头浏览器·指纹浏览器
Johnstons2 天前
Wireshark ExpertInfo是什么?一文讲透异常分级、适用场景、和传统抓包阅读的区别与排查标准
网络·测试工具·wireshark·es
我的xiaodoujiao2 天前
API 接口自动化测试详细图文教程学习系列16--项目实战演练3
python·学习·测试工具·pytest
我的xiaodoujiao3 天前
API 接口自动化测试详细图文教程学习系列15--项目实战演练2
python·学习·测试工具·pytest