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

Docker中运行JMeter 5.4脚本遇Chrome启动异常错误求助

Docker中运行JMeter 5.4脚本Chrome启动失败的解决方案

错误信息

在Docker中运行JMeter(版本5.4)脚本时出现以下错误:
org.openqa.selenium.SessionNotCreatedException:无法启动新会话。响应码500。消息:未知错误:Chrome启动失败:异常退出。

系统信息

Build info: 
          version: '4.8.3', 
          revision: 'e5e76298c3'
System info: 
         os.name: 'Linux', 
         os.arch: 'amd64', 
         os.version: '5.15.90.1-microsoft-standard-WSL2', 
         java.version: '1.8.0_362'

错误栈详情

Command: [null, newSession {capabilities=[Capabilities {acceptInsecureCerts: false, browserName: chrome, goog:chromeOptions: {args: [--remote-allow-origins=*, --start-maximized, --headless=new, --disable-dev-shm-usage,--n...], extensions: []}, proxy: Proxy(system)}], desiredCapabilities=Capabilities {acceptInsecureCerts: false, browserName: chrome, goog:chromeOptions: {args: [--remote-allow-origins=*, --start-maximized, --headless=new, --disable-dev-shm-usage,--n...], extensions: []}, proxy: Proxy(system)}}]
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:148) ~[selenium-remote-driver-4.8.3.jar:?]
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:106) ~[selenium-remote-driver-4.8.3.jar:?]
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:67) ~[selenium-remote-driver-4.8.3.jar:?]
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:165) ~[selenium-remote-driver-4.8.3.jar:?]
    at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:183) ~[selenium-remote-driver-4.8.3.jar:?]
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:158) ~[selenium-remote-driver-4.8.3.jar:?]
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543) ~[selenium-remote-driver-4.8.3.jar:?]
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:229) ~[selenium-remote-driver-4.8.3.jar:?]
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:157) ~[selenium-remote-driver-4.8.3.jar:?]
    at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:101) ~[selenium-chromium-driver-4.8.3.jar:?]
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:88) ~[selenium-chrome-driver-4.8.3.jar:?]
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:84) ~[selenium-chrome-driver-4.8.3.jar:?]
    at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.createBrowser(ChromeDriverConfig.java:28) ~[jmeter-plugins-webdriver-4.9.1.0.jar:?]
    at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.createBrowser(ChromeDriverConfig.java:14) ~[jmeter-plugins-webdriver-4.9.1.0.jar:?]
    at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.getPreparedBrowser(WebDriverConfig.java:221) ~[jmeter-plugins-webdriver-4.9.1.0.jar:?]
    at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.threadStarted(WebDriverConfig.java:152) ~[jmeter-plugins-webdriver-4.9.1.0.jar:?]
    at org.apache.jmeter.threads.JMeterThread$ThreadListenerTraverser.addNode(JMeterThread.java:784) [ApacheJMeter_core.jar:5.4.1]
    at org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:993) [jorphan.jar:5.4]
    at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:976) [jorphan.jar:5.4]
    at org.apache.jmeter.threads.JMeterThread.threadStarted(JMeterThread.java:752) [ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.threads.JMeterThread.initRun(JMeterThread.java:740) [ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:252) [ApacheJMeter_core.jar:5.4.1]
    at java.lang.Thread.run(Thread.java:750) [?:1.8.0_362]

解决步骤

  • 安装Chrome依赖库:Docker镜像默认缺少Chrome运行所需的系统依赖,在Dockerfile中添加以下命令:

    RUN apt-get update && apt-get install -y \
        libnss3 \
        libgconf-2-4 \
        libxi6 \
        libgdk-pixbuf2.0-0 \
        libgtk-3-0 \
        libxss1 \
        fonts-liberation \
        libappindicator3-1 \
        xdg-utils \
        --no-install-recommends
    
  • 修正Chrome启动参数:在JMeter的ChromeDriver配置中,调整参数格式并补充必要参数:

    • 确保--disable-dev-shm-usage后有空格(当前错误信息中该参数后直接跟逗号,格式错误)
    • 添加--no-sandbox(Docker非root用户运行必备)和--disable-gpu(无头模式下无需GPU)
      修改后的完整参数示例:
    --remote-allow-origins=*, --start-maximized, --headless=new, --disable-dev-shm-usage, --no-sandbox, --disable-gpu
    
  • 匹配Chrome与ChromeDriver版本:Selenium 4.8.3对应ChromeDriver版本为109.x-111.x,需确保容器内安装的Chrome版本与该范围兼容,若版本不匹配,更新Chrome或ChromeDriver。

  • 调整容器运行配置:

    • 避免用root用户运行容器,创建普通用户:
      RUN useradd -m jmeteruser
      USER jmeteruser
      
    • 增大共享内存(可选):启动容器时添加--shm-size=256m参数,避免/dev/shm空间不足:
      docker run --shm-size=256m [你的容器参数]
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:47:02