如何将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
相关产品推荐
相关产品推荐

