温馨提示×

centos环境postman如何进行自动化测试

小樊
39
2025-12-17 09:13:55
栏目: 智能运维

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;确保运行用户对报告目录具备写权限

0