目录

步骤一:在 Postman 中准备测试集合(Collection)

步骤二:准备本地 Newman 运行环境(测试用)

步骤三:配置 Jenkins 流水线任务

步骤四:构建并查看结果

高级配置与优化


首先要了解这套组合的核心思路是:

  1. ​在 Postman 中​​:设计和调试你的 API 测试用例(Collections)。
  2. ​使用 Newman​​:Postman 的命令行集合运行器(Collection Runner),它让您能够在 ​​无头环境(命令行/CI服务器)​​ 中执行 Postman 测试。
  3. ​在 Jenkins 中​​:创建一个流水线(Pipeline)任务,自动拉取代码、安装 Newman、运行测试并生成报告。

这样就能实现每次代码推送后,自动验证 API 是否正常工作。


步骤一:在 Postman 中准备测试集合(Collection)

  1. ​创建 Collection​​:将所有需要测试的 API 请求组织到一个 Collection 中(例如 My API Tests)。
  2. ​编写测试脚本​​:在每个请求的 ​​Tests​​ 标签页中,用 JavaScript 编写断言。可以用postman自己封装的测试方法:
    例如:
     
  3. ​导出 Collection​​:
    • 右键点击你的 Collection -> ​​Export​​。
    • 选择推荐的 ​​v2.1​​ 格式 -> 导出为 My-API-Tests.postman_collection.json
  4. ​导出环境变量(如果需要)​​:如果你使用了环境变量(如 {{base_url}}),同样需要导出环境(Environment)文件。

步骤二:准备本地 Newman 运行环境(测试用)

在将任务交给 Jenkins 之前,最好先在本地测试命令行能否正常运行。

  1. ​安装 Newman​​(需要先安装 Node.js):
    npm install -g newman
  2. ​安装 HTML 报告插件​​(强烈推荐):
    npm install -g newman-reporter-html
  3. ​在本地运行测试​​:
    # 基本运行
    newman run My-API-Tests.postman_collection.json
    
    # 使用环境变量文件
    newman run My-API-Tests.postman_collection.json -e my-environment.postman_environment.json
    
    # 生成 HTML 报告
    newman run My-API-Tests.postman_collection.json -r html,cli --reporter-html-export ./newman-report.html
    运行后,打开 newman-report.html 文件查看漂亮的测试报告。确保本地运行成功后再配置 Jenkins。

步骤三:配置 Jenkins 流水线任务

这是最核心的步骤。我们将创建一个 ​​Pipeline​​ 任务,使用 ​​Jenkinsfile​​ 来定义整个构建、测试、报告流程。

​方法一:使用 Jenkinsfile(推荐)​

在你的项目代码仓库(如 Git)的根目录下,创建一个名为 Jenkinsfile 的文件,内容如下:

pipeline {
    agent any // 在任何可用的代理上运行

    stages {
        stage('Checkout') {
            steps {
                // 从Git仓库拉取代码,其中包含你的Postman collection.json文件
                git branch: 'main', url: 'https://github.com/your-username/your-api-project.git'
            }
        }

        stage('Install Newman') {
            steps {
                script {
                    // 使用Node.js环境安装newman和html报告器
                    sh 'npm install -g newman newman-reporter-html'
                }
            }
        }

        stage('Run API Tests') {
            steps {
                script {
                    // 使用newman运行测试并生成HTML和CLI报告
                    sh 'newman run My-API-Tests.postman_collection.json -r html,cli --reporter-html-export ./newman-report.html'
                }
            }
        }
    }

    post {
        always {
            // 总是发布HTML报告,无论构建成功与否
            publishHTML (target: [
                allowMissing: false,
                alwaysLinkToLastBuild: true,
                keepAll: true,
                reportDir: '.', // 报告所在目录
                reportFiles: 'newman-report.html', // 报告文件名
                reportName: 'Postman API Test Report' // 在Jenkins侧边栏显示的名称
            ])
        }
    }
}

​方法二:在 Jenkins UI 中直接配置​

  1. ​新建任务​​:在 Jenkins 中,创建一个新的 ​​Pipeline​​ 任务。
  2. ​配置 Pipeline​​:
    • 在 ​​Pipeline​​ 部分,选择 ​​Pipeline script​​。
    • 将上述 Jenkinsfile 中的 pipeline {...} 全部内容复制到脚本输入框中。
    • 或者,更佳实践是选择 ​​Pipeline script from SCM​​,并配置你的 Git 仓库地址。这样 Jenkins 会自动从你的仓库中读取 Jenkinsfile

步骤四:构建并查看结果

  1. ​点击“立即构建”​​:手动触发第一次构建。
  2. ​查看控制台输出​​:构建完成后,点击构建号 -> ​​Console Output​​,查看详细的日志,确认 newman 是否成功运行。
  3. ​查看可视化报告​​:在构建页面的侧边栏,你会看到一个 ​​Postman API Test Report​​ 的链接。点击即可查看精美的、可视化的 HTML 测试报告,其中包含了通过/失败的测试用例详情、响应时间等。

高级配置与优化

  • ​使用环境变量管理敏感信息​​:切勿将密码、Token 等硬编码在 Postman Collection 或代码中。可以使用:

    • ​Jenkins Credentials Binding​​:在 Jenkins 中管理凭据,并在 Pipeline 中通过 withCredentials 指令将其作为环境变量传递给 Newman。
    • ​在命令中传递变量​​:newman run ... --env-var "api_key=$API_KEY"
  • ​失败处理​​:Newman 默认在遇到测试失败时会以非零代码退出,这将导致 Jenkins 构建标记为 ​​FAILURE​​。这正是我们想要的行为,说明 API 出现了回归问题。

  • ​定时构建或 Webhook 触发​​:你可以配置 Jenkins 任务:

    • ​定时构建​​:例如每晚凌晨运行一次完整的 API 回归测试。
    • ​GitHub Webhook​​:实现真正的持续集成(CI)。当代码有新的 push 到仓库时,自动通知 Jenkins 开始执行测试。

通过以上步骤,你就成功地建立了一个强大、自动化的 API 持续集成流水线,能够及时反馈 API 的健康状况,极大提升软件质量和开发效率。不过由于postman的安全问题 目前换成了Bruno工具 大家可以根据情况选择
 

更多推荐