在 Ubuntu 上使用 Postman 进行端到端测试
一 安装与准备
- 安装方式(任选其一)
- Snap:sudo snap install postman --classic
- APT:导入 GPG 并添加仓库后安装
- wget -qO - https://dl.postman.co/postman.gpg | sudo apt-key add -
- echo “deb https://dl.postman.co/debian $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/postman.list
- sudo apt update && sudo apt install postman
- Flatpak:flatpak install flathub com.postman.Postman
- 启动方式
- 应用菜单搜索并打开 Postman,或命令行输入:postman
- 基本概念
- 使用Collection组织多接口链路
- 使用Environment管理不同环境(如 dev/test/prod)的变量(如 {{base_url}}、{{token}})
二 设计端到端测试流程
- 梳理业务主流程并拆解为请求序列,例如:
- 用户注册 → 登录获取 access_token → 创建资源 → 查询校验 → 清理数据
- 在 Postman 中创建集合并按顺序添加请求,使用环境变量保存与传递动态数据(如 {{base_url}}、{{token}})
- 为每个请求配置必要的Headers(如 Content-Type: application/json)、Body、Query Params 与认证信息
- 在关键请求之间使用Tests脚本进行状态与业务断言,确保每一步的输出满足下一步的前置条件
三 编写测试脚本与数据驱动
- 常用断言示例(Tests 标签)
- 状态码:pm.test(“Status code is 200”, () => pm.response.to.have.status(200));
- 响应结构:pm.test(“Response has id and type”, () => { const j = pm.response.json(); pm.expect(j).to.have.property(‘id’).that.is.a(‘number’); pm.expect(j.type).to.eql(‘user’); });
- 业务一致性:pm.test(“Created name matches request”, () => { const req = JSON.parse(pm.request.body.raw); const res = pm.response.json(); pm.expect(res.name).to.eql(req.name); });
- 前置处理(Pre-request Script)
- 生成随机数据并写入环境变量:const n = ‘User’ + Math.floor(Math.random()*1000); pm.environment.set(“random_name”, n);
- 数据驱动
- 在Collection Runner中使用 CSV/JSON 数据文件批量运行同一流程,覆盖多组输入与边界场景
四 本地批量运行与调试
- 在 Postman 中使用Collection Runner批量执行,配置迭代次数、延迟与数据文件,查看每个请求的断言结果与响应详情
- 使用Console(View → Show Postman Console)输出调试信息与变量状态,定位脚本或数据问题
- 将稳定流程保存为集合并版本化管理,便于回归与团队协作
五 在 Ubuntu 上集成 CI/CD
- 安装 Newman(Postman 命令行工具):npm install -g newman
- 导出集合与环境为 JSON 文件(Collection Runner 或 Postman 导出)
- 在 CI 中运行示例
- 基础:newman run your_collection.json
- 指定环境:newman run your_collection.json --environment your_env.json
- 在 GitHub Actions 等流水线中加入 Newman 步骤,实现代码提交或镜像更新后的自动化端到端回归