postman+Jenkins进行API automation集成
目录
步骤一:在 Postman 中准备测试集合(Collection)
步骤二:准备本地 Newman 运行环境(测试用)
步骤三:配置 Jenkins 流水线任务
步骤四:构建并查看结果
高级配置与优化
首先要了解这套组合的核心思路是:
- 在 Postman 中:设计和调试你的 API 测试用例(Collections)。
- 使用 Newman:Postman 的命令行集合(Collection)运行工具,让你能在终端或脚本中执行测试。
- 在 Jenkins 中:创建一个流水线(Pipeline)任务,自动拉取代码、安装 Newman、运行测试并生成报告。
这样就能实现每次代码推送后,自动验证 API 是否正常工作。
步骤一:在 Postman 中准备测试集合(Collection)
- 创建 Collection:将所有需要测试的 API 请求组织到一个 Collection 中(例如
My API Tests
)。 - 编写测试脚本:在每个请求的 Tests 标签页中,用 JavaScript 编写断言。可以用postman自己封装的测试方法:
例如:
- 导出 Collection:
- 右键点击你的 Collection -> Export。
- 选择推荐的 v2.1 格式 -> 导出为
My-API-Tests.postman_collection.json
。
- 右键点击你的 Collection -> Export。
- 导出环境变量(如果需要):如果你使用了环境变量(如
{{base_url}}
),同样需要导出环境(Environment)文件。
步骤二:准备本地 Newman 运行环境(测试用)
在将任务交给 Jenkins 之前,最好先在本地测试命令行能否正常运行。
- 安装 Newman(需要先安装 Node.js):
npm install -g newman
- 安装 HTML 报告插件(强烈推荐):
npm install -g newman-reporter-html
- 在本地运行测试:
运行后,打开# 基本运行 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 中直接配置
- 新建任务:在 Jenkins 中,创建一个新的 Pipeline 任务。
- 配置 Pipeline:
- 在 Pipeline 部分,选择 Pipeline script。
- 将上述
Jenkinsfile
中的pipeline {...}
全部内容复制到脚本输入框中。 - 或者,更佳实践是选择 Pipeline script from SCM,并配置你的 Git 仓库地址。这样 Jenkins 会自动从你的仓库中读取
Jenkinsfile
。
步骤四:构建并查看结果
- 点击“立即构建”:手动触发第一次构建。
- 查看控制台输出:构建完成后,点击构建号 -> Console Output,查看详细的日志,确认
newman
是否成功运行。 - 查看可视化报告:在构建页面的侧边栏,你会看到一个 Postman API Test Report 的链接。点击即可查看精美的、可视化的 HTML 测试报告,其中包含了通过/失败的测试用例详情、响应时间等。
高级配置与优化
-
使用环境变量管理敏感信息:切勿将密码、Token 等硬编码在 Postman Collection 或代码中。可以使用:
- Jenkins Credentials Binding:在 Jenkins 中管理凭据,并在 Pipeline 中通过
withCredentials
指令将其作为环境变量传递给 Newman。 - 在命令中传递变量:
newman run ... --env-var "api_key=$API_KEY"
- Jenkins Credentials Binding:在 Jenkins 中管理凭据,并在 Pipeline 中通过
-
失败处理:Newman 默认在遇到测试失败时会以非零代码退出,这将导致 Jenkins 构建标记为 FAILURE。这正是我们想要的行为,说明 API 出现了回归问题。
-
定时构建或 Webhook 触发:你可以配置 Jenkins 任务:
- 定时构建:例如每晚凌晨运行一次完整的 API 回归测试。
- GitHub Webhook:实现真正的持续集成(CI)。当代码有新的
push
到仓库时,自动通知 Jenkins 开始执行测试。
通过以上步骤,你就成功地建立了一个强大、自动化的 API 持续集成流水线,能够及时反馈 API 的健康状况,极大提升软件质量和开发效率。不过由于postman的安全问题 目前用的少 大家可以根据情况选择