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 [你的容器参数]
- 避免用root用户运行容器,创建普通用户:
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

