如何将Mac端Selenium Java测试框架迁移到Ubuntu Docker容器并运行用例
基于Ubuntu的Selenium Java测试环境Docker构建方案
以下配置可直接满足你在容器中运行Selenium Java+TestNG测试用例的需求,所有依赖自动预装,无需手动配置。
完整Dockerfile
# 基础镜像:Ubuntu 22.04 LTS FROM ubuntu:22.04 # 关闭交互提示避免安装过程卡住 ENV DEBIAN_FRONTEND=noninteractive # 更新源并安装基础依赖、JDK、Maven RUN apt update && apt install -y \ wget \ curl \ gnupg \ unzip \ openjdk-11-jdk \ maven \ && rm -rf /var/lib/apt/lists/* # 安装Chrome浏览器(也可替换为Firefox对应安装逻辑) RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \ && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list \ && apt update && apt install -y google-chrome-stable \ && rm -rf /var/lib/apt/lists/* # 自动安装和当前Chrome版本匹配的ChromeDriver RUN CHROME_VERSION=$(google-chrome --version | grep -oP "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") \ && wget -q https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/$CHROME_VERSION/linux64/chromedriver-linux64.zip \ && unzip chromedriver-linux64.zip \ && mv chromedriver-linux64/chromedriver /usr/local/bin/ \ && chmod +x /usr/local/bin/chromedriver \ && rm -rf chromedriver-linux64* # 配置Java、Maven环境变量 ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 ENV PATH=$JAVA_HOME/bin:$PATH ENV MAVEN_HOME=/usr/share/maven ENV PATH=$MAVEN_HOME/bin:$PATH # 设置容器默认工作目录 WORKDIR /app
注:Selenium、TestNG不需要在系统层面单独安装,Maven会自动拉取项目pom.xml中声明的对应依赖包。如果是国内环境构建,可以自行替换为国内的软件源提升下载速度。
配套项目配置说明
- 确保你的项目
pom.xml中已经声明Selenium、TestNG依赖,参考示例:
<dependencies> <!-- Selenium核心依赖 --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.15.0</version> </dependency> <!-- TestNG测试框架依赖 --> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.8.0</version> <scope>test</scope> </dependency> </dependencies>
- Selenium启动浏览器时需要添加无头模式参数,适配容器无图形界面的运行环境,参考Java代码:
ChromeOptions options = new ChromeOptions(); options.addArguments("--headless=new"); options.addArguments("--no-sandbox"); options.addArguments("--disable-dev-shm-usage"); WebDriver driver = new ChromeDriver(options);
构建&运行步骤
- 将Dockerfile放到你的项目根目录(和
pom.xml同级) - 执行镜像构建命令:
docker build -t selenium-java-test . - 运行容器执行测试,直接挂载本地项目目录避免重复构建镜像:
docker run -v $(pwd):/app selenium-java-test mvn clean test
内容的提问来源于stack exchange,提问作者Niharika Dash
相关产品推荐
相关产品推荐

