自动化软件API测试部署Postman和Jenkins集成

自动化部署集成API网关测试是保证服务稳定和功能正确性的重要步骤。如何深度集成Postman和Jenkins,构建一套可靠的自动化API测试流程呢?

集成和组件

通过在部署前自动执行API测试,能快速反馈代码变更对API的影响,保证部署的代码满足预期行为,降低线上故障风险。

这套流程主要依赖三个主要工具:

Postman:用于设计和开发API测试用例(集合)和环境。

Newman:作为Postman的命令行工具,允许在无头环境中运行Postman集合,便于集成。

Jenkins:作为自动化服务器,负责调度和执行整个测试流程,并和部署流程衔接。

环境配置和基础设置

软件安装

Node.js:Newman运行需要Node.js环境。

Newman:通过npm安装:npm install -g newman。根据需要,可能还需安装报告器,例如 newman-reporter-html。

Jenkins:可通过官方包管理器安装,或通过Tomcat等Web容器部署。

Jenkins插件准备

在 Jenkins 中安装以下插件来增强功能:

Git Plugin:用于从 Git 仓库拉取测试代码和集合。

Pipeline Plugin:用于定义持续集成流水线。

HTML Publisher Plugin:用于在Jenkins中发布并展示HTML格式的测试报告。

Email Extension Plugin:用于定制和发送详细的测试结果邮件。

Postman集合和环境的准备和导出

在Postman中完成API测试用例的设计和调试。

将测试集合(Collection)和可能用到的环境变量(Environment)导出为JSON文件,并提交到版本控制系统(如 Git)。

在Jenkins中配置流水线

使用Jenkins Pipeline(通常通过Jenkinsfile定义)能灵活控制构建测试流程。

以下是一个 Jenkins Pipeline 例子,包含了从拉取代码到运行测试、生成报告的步骤:

Groovy 复制代码
pipeline {

    agent any

    stages {

        stage('Checkout') {

            steps {

                git branch: 'main', url: 'https://github.com/your-username/your-repo.git' // 从版本库拉取测试集合和代码

            }

        }

        stage('API Gateway Tests') {

            steps {

                sh '''

                  # 使用 Newman 运行 Postman 集合

                  newman run "your_postman_collection.json" \

                    -e "your_environment.json" \ // 使用环境变量

                    --reporters cli,junit,html \ // 配置多种报告格式

                    --reporter-junit-export "newman/results.xml" \ // JUnit 格式结果,常用于 CI 集成

                    --reporter-html-export "newman/report.html" // HTML 格式报告,更易读

                '''

            }

        }

        stage('Publish Test Report') {

            steps {

                publishHTML(target: [

                  allowMissing: false,

                  alwaysLinkToLastBuild: true,

                  keepAll: true,

                  reportDir: 'newman', // HTML 报告所在目录

                  reportFiles: 'report.html',

                  reportName: 'Newman API Test Report'

                ])

                junit 'newman/results.xml' // 发布 JUnit 格式测试结果

            }

        }

    ]

    post {

      always {

        // 后续可添加归档日志、根据构建结果发送通知等步骤

      }

    }

}

触发自动化测试

配置流水线触发条件,使它和你的开发流程集成:

代码变更触发:配置GitHub Webhook或使用Gerrit Trigger等,在代码提交或合并请求时自动触发测试。

定时构建:例如,可以设置Jenkins定期(如每小时)构建一次项目。

上游Job触发:实现当接口代码有修改时,由上游Job自动触发API测试的下游Jo,实现完全自动化。

测试结果优化

报告可视化

利用HTML Publisher Plugin在Jenkins中直接展示Newman生成的 HTML 报告,直观呈现测试通过率、失败用例详情和请求响应数据。

JUnit 报告 可以被 Jenkins 原生处理,便于追踪构建历史中的测试趋势。

通知机制

通过Email Extension Plugin定制邮件模板,在构建失败或不稳定时,发送包含重要失败信息和报告链接的邮件。

文章来源:卓码软件测评

精彩推荐:点击蓝字即可
软件负载测试API自动化测试软件测试第三方软件测试软件性能测试软件测试机构

相关推荐
FreeBuf_2 小时前
AutoPentestX:面向 Linux 系统的自动化渗透测试工具包
linux·运维·自动化
老百姓懂点AI2 小时前
[数据工程] 告别脏数据:智能体来了(西南总部)AI调度官的自动化ETL清洗与AI agent指挥官的数据合成管线
人工智能·自动化·etl
小W与影刀RPA3 小时前
【影刀RPA】:智能过滤敏感词,高效输出表格
大数据·人工智能·python·低代码·自动化·rpa·影刀rpa
DevOps探索之旅3 小时前
GitPuk从入门到精通,使用GitPuk + Arbess进行CICD自动化部署
自动化·arbess·gitpuk·国产开源代码管理工具·一文上手
乾元4 小时前
暗网情报:自动化采集与情感分析在威胁狩猎中的应用
运维·网络·人工智能·深度学习·安全·架构·自动化
ccino .4 小时前
【SSRF漏洞及自动化扫描插件】
运维·自动化
骆驼爱记录4 小时前
Word通配符技巧:高效文档处理指南
开发语言·c#·自动化·word·excel·wps·新人首发
MarkHD4 小时前
Python RPA七日实战:用pyautogui打造第一个自动化脚本
python·自动化·rpa
柱子jason4 小时前
基于IOT-Tree Server支持的gRPC服务,使用C#开发自己的设备监控客户端
物联网·rpc·c#·自动化·iiot·iot-tree
AC赳赳老秦5 小时前
等保2.0合规实践:DeepSeek辅助企业数据分类分级与自动化报告生成
大数据·人工智能·分类·数据挖掘·自动化·数据库架构·deepseek