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

如何生成合并Karate-DSL各Feature执行结果的统一文件?

合并Karate-DSL多Feature测试结果为统一文件

Karate默认会为每个Feature生成单独的JSON测试结果文件,要合并成统一文件,可通过以下几种方式实现:

1. 利用Karate内置聚合功能

运行测试时指定输出目录并开启聚合配置,Karate会自动生成汇总的JSON/HTML报告:

  • 命令行运行时添加参数:
    mvn test -Dkarate.output.dir=target/karate-results -Dkarate.aggregate=true
    执行完成后,target/karate-results目录下会生成karate-summary.json(汇总结果)和karate-summary.html(可视化报告)。

2. 自定义脚本合并JSON结果

如果需要更灵活的合并逻辑,可编写脚本遍历结果目录,读取所有单独的JSON文件并合并:
以下是Groovy示例脚本(需确保环境有Groovy和Jackson依赖):

@Grab('com.fasterxml.jackson.core:jackson-databind:2.15.2')
import com.fasterxml.jackson.databind.ObjectMapper

// 结果文件所在目录
def resultsDir = new File('target/karate-results')
def mapper = new ObjectMapper()
def combinedResults = []

// 遍历所有result开头的JSON文件
resultsDir.eachFileMatch(~/result-.+\.json/) { file ->
    def featureResult = mapper.readValue(file, Map)
    combinedResults.add(featureResult)
}

// 写入合并后的JSON文件
mapper.writerWithDefaultPrettyPrinter()
      .writeValue(new File('target/combined-karate-results.json'), combinedResults)

将脚本保存为merge-results.groovy,运行groovy merge-results.groovy即可生成合并后的文件。

3. Maven/Gradle插件配置

通过构建插件直接配置聚合输出:

Maven示例(pom.xml)

<plugin>
    <groupId>com.intuit.karate</groupId>
    <artifactId>karate-maven-plugin</artifactId>
    <version>1.4.1</version>
    <executions>
        <execution>
            <goals>
                <goal>test</goal>
            </goals>
            <configuration>
                <outputDirectory>target/karate-results</outputDirectory>
                <reportFormat>json</reportFormat>
                <aggregate>true</aggregate>
            </configuration>
        </execution>
    </executions>
</plugin>

运行mvn karate:test后,目标目录会自动生成汇总的JSON报告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 01:17:47