centos

Postman在CentOS上如何集成CI/CD

小樊
46
2025-09-26 06:44:59
栏目: 智能运维

1. 准备工作:安装必要工具 在CentOS系统上,首先需要安装Node.js、npm(Node.js包管理器)和Newman(Postman的命令行工具)。Newman是集成CI/CD的核心,用于在命令行中运行Postman测试集合。安装命令如下:

# 更新系统包索引
sudo yum update -y
# 安装Node.js和npm(CentOS默认仓库可能版本较旧,建议使用EPEL仓库)
sudo yum install -y epel-release
sudo yum install -y nodejs npm
# 验证安装版本(Node.js需≥12.x,npm需≥6.x)
node -v && npm -v
# 全局安装Newman
sudo npm install -g newman

以上步骤确保系统具备运行Postman测试的基础环境。

2. 创建并导出Postman测试集合 在Postman桌面客户端中完成API测试用例的设计(包括请求方法、URL、Headers、Body及Tests脚本),然后将集合导出为JSON文件。具体操作:

3. 编写Shell脚本自动化运行Newman 为了简化CI/CD中的执行步骤,建议编写Shell脚本封装Newman命令。示例如下:

#!/bin/bash
# 设置集合和环境文件路径(根据实际路径修改)
COLLECTION_PATH="/home/user/api-collection.json"
ENV_PATH="/home/user/api-environment.json"  # 可选:环境变量文件
REPORT_PATH="/home/user/report.xml"         # JUnit格式报告路径

# 运行Newman测试,生成JUnit格式报告
newman run "$COLLECTION_PATH" -e "$ENV_PATH" --reporters cli,junit --reporter-junit-export "$REPORT_PATH"

# 检查测试结果,若失败则退出并返回非0状态码(CI/CD中可标记构建失败)
if [ $? -ne 0 ]; then
  echo "Postman测试未通过!"
  exit 1
else
  echo "Postman测试全部通过!"
fi

将脚本保存为run_postman.sh,赋予执行权限:

chmod +x run_postman.sh

运行脚本即可执行测试并生成报告。

4. 集成到Jenkins CI/CD流程 以Jenkins为例,配置自动触发Postman测试的Pipeline:

pipeline {
  agent any
  stages {
    stage('Checkout') {
      steps {
        git branch: 'main', url: 'https://github.com/your-repo/api-project.git'  // 替换为实际仓库地址
      }
    }
    stage('Install Newman') {
      steps {
        sh 'npm install -g newman'  // 确保Jenkins节点安装Newman
      }
    }
    stage('Run Postman Tests') {
      steps {
        sh './run_postman.sh'  // 执行Shell脚本
      }
    }
    stage('Publish Results') {
      steps {
        junit 'report.xml'  // 发布JUnit格式测试报告(对应Newman生成的report.xml)
      }
    }
  }
  post {
    always {
      echo 'Pipeline执行完成'
    }
    failure {
      mail to: 'dev-team@example.com', subject: 'Postman测试失败', body: '请检查Jenkins构建日志'
    }
  }
}

5. 解析与展示测试结果 通过Jenkins插件(如“HTML Publisher”)将Newman生成的测试报告可视化。例如,在Jenkinsfile中添加以下步骤,可将HTML报告发布到Jenkins界面:

junit 'report.xml'  // 展示JUnit格式的文本报告
publishHTML(target: [
  allowMissing: false,
  alwaysLinkToLastBuild: true,
  keepAll: true,
  reportDir: '/',
  reportFiles: 'newman-report.html',  // Newman生成的HTML报告(需在run_postman.sh中添加--reporters html选项)
  reportName: 'Postman Test Report'
])

运行后,Jenkins界面会显示测试结果的文本摘要和HTML详情,便于快速定位失败用例。

注意事项

0
看了该问题的人还看了