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

如何将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中声明的对应依赖包。如果是国内环境构建,可以自行替换为国内的软件源提升下载速度。

配套项目配置说明

  1. 确保你的项目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>
  1. 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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:06:01