如何自定义Karate Report?能否实现日志添加与截图嵌入
自定义Karate Report实现方案
当然有成熟可行的方案,可以实现和参考Cucumber报告一致的自定义日志写入、报告内嵌截图效果,具体落地方式如下:
- 基础能力开箱可用
Karate 1.0+版本原生预留了报告扩展接口,完全不需要从零搭建报告框架:- 自定义日志写入:在场景步骤里直接调用
karate.log('你的自定义日志内容'),所有日志会自动绑定到对应scenario节点下,效果和Cucumber的scenario.log没有区别 - 内嵌截图:如果用Karate自带的Web/移动端驱动,执行
driver.screenshot()后截图会自动以base64格式内嵌到当前步骤的报告块里;如果对接第三方WebDriver,只要拿到截图的base64字符串,调用karate.embed(screenshotBase64Str, 'image/png')就能把图片插到对应步骤的报告位置
- 自定义日志写入:在场景步骤里直接调用
- 深度样式自定义
如果要完全复刻参考报告的排版样式,选下面任意一种方案就行:- 替换官方报告模板:在配置里指定自定义Freemarker模板路径,基于官方默认模板改样式、加日志展示分区、调整截图预览尺寸就可以,所有用例运行数据、日志、嵌入资源会自动传入模板完成渲染
- 复用现有Cucumber报告链路:跑Karate用例的时候加
-f json参数,输出标准Cucumber格式的JSON结果文件,这个文件的字段结构和Cucumber原生输出完全兼容,你之前用来生成自定义Cucumber HTML报告的所有脚本、模板都不用改,直接读这个JSON文件就能生成样式完全一致的报告
避坑提示:一定要用1.2.0及以上版本的Karate做上述配置,0.9.x及更早版本的embed接口有bug,会出现base64截断、日志绑定错位的问题,没法稳定支持自定义嵌入内容。
参考的自定义Cucumber HTML报告效果:
内容的提问来源于stack exchange,提问作者Abhyuday Shukla
相关产品推荐
相关产品推荐

