在 Ubuntu 上使用 Postman 进行接口自动化测试
一 安装与启动
- 使用 Snap(推荐)
- 安装与启动:sudo snap install postman --classic;启动:在应用菜单打开或在终端输入 postman。
- 使用 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
- 安装与启动:sudo apt install flatpak;flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo;flatpak install flathub com.postman.Postman;flatpak run com.postman.Postman。
- 手动安装(备用)
- 下载与解压:wget https://dl.pstmn.io/download/latest/linux64 -O postman.tar.gz;sudo tar -xzf postman.tar.gz -C /opt;创建软链:sudo ln -s /opt/Postman/Postman /usr/local/bin/postman;创建桌面文件 /usr/share/applications/postman.desktop 并赋予可执行权限。
二 构建自动化测试
- 创建集合与请求:新建 Collection,在集合中创建 GET/POST 等请求,统一管理与批量运行。
- 配置环境与变量:通过 Manage Environments 创建环境(如 Development/Test/Production),在变量中保存 {{baseUrl}}、{{apiKey}} 等值,请求中以 {{变量名}} 引用,便于环境切换。
- 编写脚本
- Pre-request Script:请求前执行,常用于生成 token、签名、动态参数等。
- Tests:请求后执行,使用 pm.test 与 pm.expect 进行断言,验证状态码、响应体、响应头等。
- 常用断言示例
- 状态码:pm.test(“Status code is 200”, () => pm.response.to.have.status(200));
- 响应时间:pm.test(“Response time < 200ms”, () => pm.expect(pm.response.responseTime).to.be.below(200));
- 响应头:pm.test(“Content-Type is JSON”, () => pm.response.to.have.header(“Content-Type”, /application/json/));
- 响应体字段:const json = pm.response.json(); pm.test(“Has id”, () => pm.expect(json).to.have.property(“id”));
- 数据驱动与链式调用
- 数据变量:从 Collection/Environment/Data File 读取参数,实现数据驱动测试。
- 链式请求:在 Tests 中将前序请求结果写入变量(如 pm.environment.set(“token”, …)),后续请求通过 {{token}} 使用;也可用 pm.sendRequest 发起异步请求并断言。
三 本地批量运行与调试
- 使用 Collection Runner:在 Postman 中点击 Runner,选择集合与环境,配置 迭代次数、延迟、数据文件 后运行,查看每个请求的 断言结果与日志。
- 调试技巧:在 Console 使用 console.log 输出变量与响应;在脚本中利用 try-catch 与更细粒度的 pm.test 定位问题。
四 在 CI/CD 中自动化执行
- 安装 Newman:npm 全局安装 Newman(Postman 命令行工具):npm install -g newman。
- 导出资产:在 Postman 导出 Collection JSON 与 Environment JSON。
- 运行与报告
- 基本运行:newman run your_collection.json --environment your_env.json。
- 生成报告:newman run your_collection.json -r cli,html,json,junit --reporter-html-export report.html --reporter-junit-export report.xml。
- 无头执行与集成:在 Jenkins/GitHub Actions/GitLab CI 等 CI 环境中以无头方式运行 Newman,并基于退出码与报告实现 门禁与可视化。