You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在两个不同Jenkins任务中自动化比对测试用例总数?

自动化比对Jenkins两个任务的测试用例总数

方法一:调用Jenkins REST API

Jenkins自带REST API,无需额外插件即可获取任务测试统计数据:

  • 先在个人设置里生成API Token,替代明文密码用于身份验证
  • 获取两个任务最新构建测试总数的Shell命令示例:
    # 获取任务A的测试用例总数
    curl -u 用户名:API_TOKEN "http://你的Jenkins地址/job/任务A/lastBuild/testReport/api/json?tree=totalCount"
    # 获取任务B的测试用例总数
    curl -u 用户名:API_TOKEN "http://你的Jenkins地址/job/任务B/lastBuild/testReport/api/json?tree=totalCount"
    
  • 可将上述请求整合到Shell/Python脚本中,解析返回的JSON数据自动比对数值,还能添加差值阈值告警逻辑

方法二:借助Jenkins插件简化操作

  • Test Result Analyzer:支持在Jenkins界面直观对比多任务测试统计,也可导出CSV格式数据用于后续批量处理
  • Pipeline Utility Steps(针对Pipeline任务):在流水线脚本中直接读取测试报告统计值并完成比对:
    def testStatsA = junit testResults: '**/target/surefire-reports/*.xml', returnStatus: true, allowEmptyResults: true
    def testStatsB = junit testResults: '**/target/surefire-reports/*.xml', returnStatus: true, allowEmptyResults: true
    
    if (testStatsA.totalCount != testStatsB.totalCount) {
        echo "任务A与B测试用例总数不一致:A=${testStatsA.totalCount}, B=${testStatsB.totalCount}"
        currentBuild.result = 'UNSTABLE'
    }
    

方法三:自定义脚本适配特殊测试报告

若任务使用非JUnit标准格式的测试报告,可编写Python/Shell脚本:

  • 直接从Jenkins服务器的任务工作区读取测试报告文件(XML/JSON等格式)
  • 解析文件中的测试用例总数字段,执行比对逻辑
  • 将脚本封装为Jenkins定时任务,自动执行并输出比对结果

注意:若Jenkins开启CSRF保护,调用API前需先请求http://你的Jenkins地址/crumbIssuer/api/json获取Crumb值,添加到请求头中完成身份验证。

内容的提问来源于stack exchange,提问作者TRK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 13:54:51