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

如何通过Jenkins在虚拟机上运行Selenium Server(RC)并解决步骤冻结问题?

解决Jenkins Pipeline启动Selenium Server后卡住的问题

核心原因是你当前的ssh命令是前台运行Selenium Server,Jenkins会一直等待ssh会话结束才会执行后续步骤。要让命令后台运行、让ssh立即返回,有以下几种可行方案:

方案1:用nohup+&让进程后台运行

把命令用引号包裹,在末尾加&让进程后台执行,同时用nohup让进程脱离终端(避免ssh断开后进程被杀死):

sh '''ssh user@ip "nohup java -jar ~/selenium_driver/selenium-server-4.3.0.jar standalone -p 1234 > logs.log 2>&1 &"'''
  • 必须加引号:不然&会被解析成本地Shell的后台符号,ssh还是会前台执行命令。
  • nohup的作用:即使ssh会话关闭,Selenium进程也能继续运行。

方案2:用ssh的-f选项后台执行命令

ssh的-f参数会让ssh在执行命令前转到后台,这样Jenkins的ssh进程会立即返回,无需等待命令结束:

sh '''ssh -f user@ip java -jar ~/selenium_driver/selenium-server-4.3.0.jar standalone -p 1234 > logs.log 2>&1'''

这个方案更简洁,适合不需要长期保留进程的场景(测试结束后可以手动杀掉进程)。

额外注意事项

  1. 确保日志路径有权限:虚拟机上的logs.log所在目录要给user用户写入权限,不然Selenium启动会失败,还可能无日志排查问题。
  2. 等待Selenium启动完成:直接启动后就跑测试可能会因为Selenium未初始化完成而失败,建议加等待和检查步骤:
    sh '''sleep 10''' // 等待时间可根据实际调整
    sh '''ssh user@ip "telnet localhost 1234 || exit 1"''' // 检查端口是否监听
    
  3. 测试完成后清理进程:避免虚拟机上残留大量Selenium进程,在Pipeline最后加停止步骤:
    sh '''ssh user@ip "pkill -f selenium-server-4.3.0.jar"'''
    

完整Pipeline示例

pipeline {
    agent any
    stages {
        stage('启动Selenium Server') {
            steps {
                sh '''ssh -f user@ip "nohup java -jar ~/selenium_driver/selenium-server-4.3.0.jar standalone -p 1234 > ~/selenium_driver/selenium.log 2>&1 &"'''
                sh '''sleep 15'''
                sh '''ssh user@ip "echo '检查Selenium端口' && telnet localhost 1234 || { echo 'Selenium启动失败' && exit 1; }"'''
            }
        }
        stage('运行Pytest测试') {
            steps {
                sh '''pytest test_cases/ -v --tb=short'''
            }
        }
        stage('停止Selenium Server') {
            steps {
                sh '''ssh user@ip "pkill -f selenium-server-4.3.0.jar || echo '无Selenium进程需要停止'"'''
            }
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:24:46