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

Karate UI命令行执行时,Feature失败如何记录trace-id?

Karate UI测试失败时捕获trace-id的方案

实现思路

通过Karate内置的场景后钩子(afterScenario),在测试失败时触发DOM读取操作,提取隐藏输入框中的trace-id并记录。

具体步骤

  1. 注册失败触发的钩子
    在测试的Background段或者全局配置Feature中添加钩子配置,只在场景失败时执行逻辑:

    Background:
      * configure afterScenario = function(){ if (karate.info.error) { getTraceId() } }
    
  2. 编写trace-id捕获函数
    直接在Feature文件中定义JS函数,用Karate UI API定位隐藏输入框并取值,然后输出日志或写入文件:

    * def getTraceId = function(){
        // 替换为你的隐藏输入框CSS选择器
        var traceId = karate.ui().value('#trace-id-hidden');
        // 输出到测试日志
        karate.log('FAILED TEST TRACE-ID:', traceId);
        // 可选:写入文件供监控系统读取
        karate.write(traceId, './failed-trace-ids.txt');
      }
    
  3. 命令行执行无需额外配置
    非Java项目直接用Karate命令行工具运行测试即可,所有逻辑都在Feature文件中完成,不需要编写Java代码:

    karate path/to/your-test.feature
    

注意事项

  • 确认隐藏输入框的CSS选择器正确,比如用id、name属性定位,避免选择器失效。
  • karate.ui()是Karate UI的原生API,支持标准CSS选择器,无需额外依赖。
  • 如果需要对接监控系统,可将trace-id写入指定目录的文件,监控系统定期扫描该目录即可。

内容的提问来源于stack exchange,提问作者Juan De la Cruz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:50:57