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

如何将Newman集合测试结果合并为适用于Jenkins的有效XML文件?

我的小型Jenkins流水线:批量运行Postman集合并合并测试结果

最近我搭了个Jenkins小流水线,核心就是依次跑不同的Postman集合测试,再把每个集合生成的单独XML测试报告合并成一个完整报告,提交给Jenkins展示整体结果。下面是流水线里关键的steps代码片段:

steps {
    script {
        try {
            // 清理目录中旧的XML测试报告,避免干扰新结果
            sh '(cd ./integrativeTests/collections && rm -rf *.xml)'
            
            // 执行所有Postman集合测试,每个集合生成单独的XML报告
            sh '(cd ./integrativeTests/collections && npm run tests-all)'
            
            // 开始合并XML报告:先创建根节点,后续整合各集合的XML内容
            sh '''
                cd ./integrativeTests/collections
                echo '<?xml version="1.0" encoding="UTF-8"?>' > newman_dev_results.xml
                echo '<testsuites>' >> newman_dev_results.xml
                # 这里可以补充逻辑,把每个集合的XML内容(去掉自身声明和根节点)追加进来
                echo '</testsuites>' >> newman_dev_results.xml
            '''
            // 将合并后的报告提交给Jenkins解析
            junit 'integrativeTests/collections/newman_dev_results.xml'
        } catch (Exception e) {
            error "测试执行或报告合并失败: ${e.getMessage()}"
        }
    }
}

各步骤的核心作用:

  • 清理旧报告:先删掉目标目录里的旧XML文件,确保每次测试都是全新结果,不会和历史数据混淆。
  • 批量执行测试:通过npm run tests-all执行package.json里预先配置的Newman命令,遍历所有Postman集合,每个集合跑完生成独立XML报告。
  • 合并报告:手动构建带<testsuites>根节点的新XML文件,把每个集合的XML内容(剔除重复的声明和根节点)追加进去,最终生成Jenkins能直接解析的完整测试报告。

内容的提问来源于stack exchange,提问作者Thomas Schwärzl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:40:46