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

Linux环境下Karate UI出现“no such session”错误及Jenkins连接问题

问题分析与解决建议

问题现象

  • Windows本地无头运行Karate UI脚本功能正常,测试逻辑按预期执行
  • Linux无头运行时:
    • 控制台抛出no such session错误
    • 元素定位失败的测试未触发报错,反而莫名通过
  • 安装Chrome后Jenkins运行测试:
    • 出现Connection refused to localhost:9222错误

当前环境版本:

  • Linux ChromeDriver:2.40
  • Jenkins节点Google Chrome:68.0.3440.106

针对性解决步骤

1. 版本与权限验证

ChromeDriver 2.40官方支持Chrome 66-68版本,版本匹配无问题,但需确认:

  • 检查ChromeDriver是否为对应Linux架构(32/64位),并赋予可执行权限:
    chmod +x /path/to/chromedriver
    
  • 验证Jenkins用户能访问Chrome安装路径,在Jenkins构建脚本中添加:
    which google-chrome
    google-chrome --version
    

2. 修正无头模式启动参数

Linux非root用户(如Jenkins运行用户)必须添加特定启动参数,否则会导致会话创建失败。更新karate-config.js配置:

function fn() {
  var config = {
    driverPath: process.platform === 'linux' ? '/usr/local/bin/chromedriver' : 'C:/path/to/chromedriver.exe',
    driverConfig: {
      type: 'chrome',
      start: {
        args: [
          '--headless',
          '--no-sandbox',  // 非root用户必填,解决会话创建失败问题
          '--disable-dev-shm-usage',  // 规避Linux共享内存不足限制
          '--remote-debugging-port=9222',
          '--disable-gpu',
          '--window-size=1920,1080'
        ]
      }
    }
  };
  return config;
}

3. 排查测试“莫名通过”问题

该问题是会话创建失败后,测试逻辑未执行就直接结束导致的,需:

  • 在测试脚本开头添加会话有效性校验:
    Given driver config.driverConfig
    Then assert driver != null
    
  • 开启Karate DEBUG级日志,修改logback-test.xml日志级别,查看会话创建过程的详细输出,定位静默失败点。

4. 解决localhost:9222连接拒绝问题

  • 检查端口是否被占用,若被占用则更换调试端口:
    lsof -i :9222
    
    修改启动参数中的--remote-debugging-port为未使用端口(如9223)
  • 验证防火墙/SELinux未拦截端口访问:
    sudo iptables -L | grep 9222
    
  • 若Jenkins运行在Docker容器中,需添加--remote-debugging-address=0.0.0.0参数,并确保容器端口映射正确。

5. 手动验证流程

在Linux服务器上模拟Jenkins用户环境运行测试,排查环境差异:

sudo -u jenkins mvn test -Dtest=YourKarateTestClass

同时检查Chrome进程是否正常启动:

ps aux | grep chrome

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:58:20