1. 概述

在当今快节奏的开发节奏下,自动化测试已经成为软件开发流程中不可或缺的一部分。Selenium 是 Web 应用自动化测试的主流工具,而 Docker 则是一个允许开发者打包、分发和运行应用的容器化平台。将 Selenium 部署在 Docker 中,可以充分利用两者的特性,实现高效、可复用的测试流程。但这一过程可能略显复杂。

本文将详细介绍如何在 Docker 中安装并运行 Selenium。所有命令均在 Ubuntu 22.04 系统上验证通过。

2. 安装并配置 Docker

要运行 Selenium 容器,首先需要确保系统中已安装 Docker。

2.1. 安装依赖项

使用 apt 更新系统软件包列表:

$ sudo apt update

然后安装 Docker 所需的依赖包:

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

这些包能确保 Docker 在系统中正常运行。

2.2. 添加 Docker 官方源

使用 curl 添加 Docker 的 GPG 密钥:

$ curl -fsL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

参数说明:

  • -f:静默失败(不显示错误信息)
  • -s:静默模式
  • -L:自动重定向

接着添加 Docker 的软件源:

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

2.3. 安装并启动 Docker

安装 Docker 引擎:

$ sudo apt install docker-ce

启动 Docker 服务:

$ sudo systemctl start docker

检查 Docker 是否正在运行:

$ sudo systemctl status docker
 * Docker is running

确认状态为运行中即可。

3. 在 Docker 中部署 Selenium

Selenium 可以通过官方提供的 Docker 镜像快速部署。

3.1. 拉取镜像

我们使用 selenium/standalone-chrome 镜像,它集成了 Chrome 浏览器和 Selenium Server:

$ sudo docker pull selenium/standalone-chrome

查看本地镜像列表验证是否拉取成功:

$ sudo docker images
REPOSITORY                   TAG       IMAGE ID       CREATED       SIZE
selenium/standalone-chrome   latest    66d3196083ca   2 weeks ago   1.44GB

3.2. 启动容器

使用以下命令启动容器,并将 4444 端口映射到宿主机:

$ sudo docker run -d -p 4444:4444 selenium/standalone-chrome
6785a23708bf8274115505d5401995624e0385a35d3cc4bd7367f66d50193712

参数说明:

  • -d:后台运行容器
  • -p 4444:4444:将宿主机 4444 端口映射到容器的 4444 端口

现在可以通过 http://localhost:4444 访问 Selenium。

打开浏览器访问该地址,你会看到如下页面:

Selenium Chrome instance

这说明 Selenium 已成功运行在 Docker 容器中。

4. 在 Docker 中运行 Selenium 测试

我们使用 Python 编写一个简单的测试脚本,验证 Selenium 是否正常工作。

4.1. 创建测试脚本

新建一个 Python 文件:

$ touch test.py

编辑内容如下:

from selenium import webdriver

# 初始化远程 Chrome 实例
browser = webdriver.Remote("http://localhost:4444", options=webdriver.ChromeOptions())

# 打开 Baeldung 网站
browser.get("https://baeldung.com")

# 输出页面标题
print(browser.title)

# 关闭浏览器
browser.quit()

4.2. 执行测试脚本

运行脚本:

$ python test.py
Baeldung

如果控制台输出了页面标题,说明测试成功。

在测试执行期间,可以再次访问 http://localhost:4444 查看当前会话:

Selenium session

5. 总结

本文我们完成了以下内容:

✅ 安装并配置了 Docker
✅ 使用官方镜像部署了 Selenium
✅ 编写并运行了一个 Python 测试脚本
✅ 验证了整个流程的正确性

有了这套环境,你可以轻松构建持续集成/持续部署(CI/CD)流程,进行自动化 Web 测试。整个过程虽然有些细节需要注意,但只要一步步来,就能顺利搭建起一个稳定高效的测试平台。


原始标题:Install and Run Selenium in Docker