CentOS 环境下 Postman 自动化测试实操指南
一 环境准备
- 安装 Node.js 与 npm(建议 Node ≥ 10):
- 方式一:包管理器安装(推荐)
- CentOS 7/8:sudo yum install -y nodejs npm
- CentOS Stream 8/9 或兼容 dnf:sudo dnf install -y nodejs npm
- 方式二:二进制包解压配置 PATH(示例)
- wget https://nodejs.org/dist/v14.18.0/node-v14.18.0-linux-x64.tar.xz
- tar -xvf node-*.tar.xz -C /opt
- echo ‘export PATH=/opt/node-14.18.0-linux-x64/bin:$PATH’ >> ~/.bashrc && source ~/.bashrc
- 验证:node -v、npm -v 正常输出版本号
- 安装 Newman(Postman 命令行运行器):npm install -g newman
- 可选报告插件:npm install -g newman-reporter-html newman-reporter-htmlextra
- 如需桌面版 Postman(可选):
- wget https://dl.pstmn.io/download/latest/linux64 -O postman.tar.gz
- sudo mkdir -p /usr/local/postman && sudo tar zxvf postman.tar.gz -C /usr/local/postman
- sudo ln -sfn /usr/local/postman/Postman/Postman /usr/bin/postman
- 可创建 /usr/share/applications/postman.desktop 以便应用菜单启动
二 在 Postman 中准备可自动化运行的用例
- 创建集合 Collection,按业务组织接口请求
- 使用环境变量管理不同环境(如 dev/staging/prod):在请求中使用 {{baseUrl}}、{{token}} 等占位符
- 编写 Tests 断言示例:
- 状态码:pm.test(“Status code is 200”, () => pm.response.toHaveStatus(200))
- 响应体字段:pm.test(“Has userId”, () => pm.expect(pm.response.json()).to.have.property(‘userId’))
- 响应时间:pm.test(“Response time < 300ms”, () => pm.expect(pm.response.responseTime).toBeLessThan(300))
- 使用 Pre-request Script 动态准备数据(如时间戳、签名、token 注入)
- 运行与调试:使用 Collection Runner 验证流程与断言通过后,再导出用于 CI
三 在 CentOS 上用 Newman 执行并产出报告
- 导出文件:将 Collection 导出为 .postman_collection.json,环境导出为 .postman_environment.json
- 基本运行:newman run collection.json
- 指定环境:newman run collection.json -e env.json
- 生成报告:
- HTML 报告:newman run collection.json -r html --reporter-html-export report.html
- 增强 HTML 报告:newman run collection.json -r htmlextra --reporter-htmlextra-export report.html
- 常用参数:
- -g globals.json(全局变量)
- -d data.csv(数据驱动,参数化)
- -r json,junit(多格式报告)
- –reporter-json-export / --reporter-junit-export 指定导出路径
- 无头运行建议:在服务器环境无需启动桌面版 Postman,直接使用 Newman 执行即可
四 持续集成与报告展示
- 将 collection.json / env.json 纳入 Git 版本管理
- 在 Jenkins 中拉取代码后执行 Newman(示例命令)
- newman run collection.json -e env.json -r htmlextra --reporter-htmlextra-export report.html
- 安装 HTML Publisher 插件并发布报告;如遇 CSS 丢失,可使用 htmlextra 的自定义模板或将报告放到 Nginx 静态目录进行访问
- 可扩展钉钉/企业微信机器人通知,构建后根据结果推送消息到群聊
五 常见问题与实用建议
- 安装与网络:npm 安装慢可切换镜像源(如 https://registry.npm.taobao.org),或配置为默认源
- 变量作用域与优先级:请求作用域 > 集合作用域 > 环境作用域 > 全局作用域;同名变量按优先级取值
- 报告离线查看:htmlextra 报告默认可能不内嵌 CSS,使用自定义模板或将 CSS 一并部署可解决离线样式问题
- 数据驱动:结合 CSV 数据文件实现批量参数化测试,便于覆盖多组入参
- 无头与权限:服务器无 GUI 不影响 Newman;确保运行用户对报告目录具备写权限