如何将变量值传入Karate汇总报告的Feature标题?
Karate报告副标题自定义方案(支持可重用Feature)
方案1:全局配置报告元数据
通过karate.configure()可以全局设置报告的副标题,变量值会直接注入,且对可重用Feature的报告片段生效:
# 在主Feature的Background或初始化脚本中定义 * def testEnv = "生产环境" * def apiVersion = "v2.0.1" * karate.configure('report', { subtitle: '测试环境: ' + testEnv + ' | API版本: ' + apiVersion })
该配置会作用于整个测试报告,包括可重用Feature生成的调用记录,无需单独处理可重用Feature。
方案2:自定义报告模板(进阶灵活控制)
如果需要针对不同场景/可重用Feature设置差异化副标题,可自定义HTML报告模板:
- 复制Karate默认的
karate-report.html模板到项目资源目录 - 修改模板中的副标题区域,添加自定义变量占位符,例如:
<h2 class="report-subtitle">${customSubtitle}</h2>
- 在测试代码中通过全局变量传递自定义值,模板会自动读取渲染
- 运行测试时指定自定义模板路径:
mvn test -Dkarate.report.template=classpath:custom-karate-report.html
方案3:测试套件层面动态设置
若通过Java/JS测试套件执行测试,可在套件代码中动态生成副标题:
// Java测试套件示例 KarateStats stats = Karate.run("classpath:features") .tags("~@skip") .reportDir("target/karate-reports") .karateEnv("uat") .execute(); ReportGenerator reportGenerator = new ReportGenerator(stats, "target/karate-reports"); // 动态拼接变量生成副标题 reportGenerator.setSubtitle("环境: UAT | 构建版本: 20240520.1"); reportGenerator.generateHtml();
这种方式能在测试执行完成后,根据实际变量值灵活生成副标题,完全覆盖可重用Feature的报告展示。
内容的提问来源于stack exchange,提问作者yungyungjenny
相关产品推荐
相关产品推荐

