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

如何运行两个带不同参数的Karate实例并分别保存各次运行报告?

Karate 多实例并行生成独立报告解决方案

默认情况下Karate所有运行实例都会往同一个默认报告目录写入内容,多个并行实例同时写同目录时,先运行的实例报告内容会被后运行的覆盖,你可以通过修改报告配置的方式实现多份报告独立存储,具体操作方法如下:

方案1:启动时指定独立输出目录(最稳妥)

直接给每个运行实例指定专属的报告输出路径,从根源上避免文件覆盖问题:

  • 如果你使用Karate独立jar包运行:
    两个实例分别添加--output(简写为-o)参数指定不同目录即可,示例命令:
    终端1运行:java -jar karate.jar -o target/reports/sceneA -Dscene=pay 测试用例路径
    终端2运行:java -jar karate.jar -o target/reports/sceneB -Dscene=refund 测试用例路径
  • 如果你通过Java/JUnit代码调用Karate运行:
    在Runner配置中添加outputDirectory属性指定目录即可,示例代码:
    // 实例1配置
    Runner.path("classpath:testcases")
      .systemProperty("scene", "pay")
      .outputDirectory("target/reports/sceneA")
      .parallel(5);
    
    另一个实例修改outputDirectory对应的路径即可。

方案2:配置报告文件名前缀(配合目录使用更稳妥)

如果你需要在报告文件名上直接区分不同运行实例,可以在karate-config.js中添加报告前缀配置:

// 假设你通过入参区分不同运行场景,直接用场景参数作为报告前缀
karate.configure('report', {
  name: {
    prefix: karate.get('scene') + '-'
  }
});

注意:不建议只修改报告文件名前缀不修改输出目录,Karate报告依赖的公共静态资源(css、js文件)没有前缀配置,仍会出现覆盖问题,导致报告样式加载异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:06:03