Rahul
Rahul

Reputation: 37

org.openqa.selenium.WebDriverException: Driver server process died prematurely

I want to launch Chrome browser using Docker but on running docker I am getting error "org.openqa.selenium.WebDriverException: Driver server process died prematurely."

Error 2023-06-26 16:01:01,033 INFO o.a.j.t.JMeterThread: Thread started: Signing Room 1-1 2023-06-26 16:01:01,212 ERROR o.a.j.t.JMeterThread: Error calling threadStarted org.openqa.selenium.WebDriverException: Driver server process died prematurely. 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' Driver info: driver.version: unknown at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:234) ~[selenium-remote-driver-4.8.3.jar:?] at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.getThreadService(ChromeDriverConfig.java:47) ~[jmeter-plugins-webdriver-4.8.3.1.jar:?] at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.createBrowser(ChromeDriverConfig.java:26) ~[jmeter-plugins-webdriver-4.8.3.1.jar:?] at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.createBrowser(ChromeDriverConfig.java:14) ~[jmeter-plugins-webdriver-4.8.3.1.jar:?] at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.getPreparedBrowser(WebDriverConfig.java:221) ~[jmeter-plugins-webdriver-4.8.3.1.jar:?] at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.threadStarted(WebDriverConfig.java:152) ~[jmeter-plugins-webdriver-4.8.3.1.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] 2023-06-26 16:01:01,243 INFO o.a.j.s.FileServer: Stored: /app/apache-jmeter-5.4/bin/./Scripts//..//Data//AppUrl.csv Alias: /app/apache-jmeter-5.4/bin/./Scripts//..//Data//AppUrl.csv@827248723 2023-06-26 16:01:01,298 ERROR o.a.j.t.JMeterThread: Test failed!

DockerFile:

FROM public.ecr.aws/docker/library/ubuntu:20.04

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=America/New_York



RUN apt-get update \
    && apt-get install -y apt-utils \
    build-essential \
    openjdk-8-jdk \
    zip \
    && apt-get clean
RUN apt-get update && apt-get install -y dos2unix


# CHROME INSTALLATION 




# RUN apt-get install -y wget
RUN apt-get update \
 && apt-get install wget unzip zip -y


RUN apt-get update && apt-get install -y gnupg2

# Set up the Chrome PPA
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list


# Update the package list and install chrome
RUN apt-get update -y
RUN apt-get install -y google-chrome-stable
RUN echo "complete"


# Set up Chromedriver Environment variables
ENV CHROMEDRIVER_VERSION 2.19
ENV CHROMEDRIVER_DIR /chromedriver
RUN mkdir $CHROMEDRIVER_DIR

# Download and install Chromedriver
RUN wget -q --continue -P $CHROMEDRIVER_DIR "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip"
RUN unzip $CHROMEDRIVER_DIR/chromedriver* -d $CHROMEDRIVER_DIR

# Put Chromedriver into the PATH
ENV PATH $CHROMEDRIVER_DIR:$PATH


# CHROME INSTALLATION END

WORKDIR /app
COPY apache-jmeter-5.4 ./apache-jmeter-5.4

COPY docker-entrypoint.sh /entrypoint.sh
RUN ["chmod", "+x", "/entrypoint.sh"]
RUN ["chmod", "a+x", "./apache-jmeter-5.4/bin/jmeter.sh"]  
RUN dos2unix /entrypoint.sh && apt-get --purge remove -y dos2unix && rm -rf /var/lib/apt/lists/*


ENTRYPOINT ["/entrypoint.sh"]

Upvotes: 0

Views: 535

Answers (1)

Dmitri T
Dmitri T

Reputation: 168157

  1. Have you seen ChromeDriver documentation which states

    ChromeDriver uses the same version number scheme as Chrome. See https://www.chromium.org/developers/version-numbers for more details.

    so you need to download the chromedriver version which is exactly the same as your Chrome version and not use hard-coded value of 2.19 which is for Chrome like 5 years old

  2. As per 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure article you should always be using the latest version of JMeter so consider migrating to JMeter 5.6. Moreover JMeter 5.4 is suffering from Log4Shell so your container won't pass security audits.

Upvotes: 0

Related Questions