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 已成功运行在 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
查看当前会话:
5. 总结
本文我们完成了以下内容:
✅ 安装并配置了 Docker
✅ 使用官方镜像部署了 Selenium
✅ 编写并运行了一个 Python 测试脚本
✅ 验证了整个流程的正确性
有了这套环境,你可以轻松构建持续集成/持续部署(CI/CD)流程,进行自动化 Web 测试。整个过程虽然有些细节需要注意,但只要一步步来,就能顺利搭建起一个稳定高效的测试平台。