39 | 从小作坊到工厂:什么是Selenium Grid?如何搭建Selenium Grid?

什么是测试基础架构?

测试基础架构指的是,执行测试的过程中用到的所有基础硬件设施以及相关的软件设施。因此,我们也把测试基础架构称之为广义的测试执行环境。通常来讲,测试基础架构主要包括以下内容:

  • 执行测试的机器;测试用例代码仓库;

  • 发起测试执行的 Jenkins Job;统一的测试执行平台;

  • 测试用例执行过程中依赖的测试服务,比如提供测试数据的统一测试数据平台、提供测试全局配置的配置服务、生成测试报告的服务等;

“小作坊”模式是人工维护一批数量不多(通常在 30 台以内)的执行测试的机器,然后按需使用。

存在的问题是:

测试执行机与测试用例的关系是不透明的,即每个测试用例都需要人为设置测试执行机。

Selenium Grid

使用 Selenium Grid 可以让测试机器的选择变得“透明”。也就是说,我们只要在执行测试用例时指定需要的浏览器版本即可,而无需关心如何找到合适的测试执行机。因为,这寻找符合要求的测试执行机的工作,Selenium Grid 可以帮你完成。

Selenium Grid 的架构特点,天生就能很好地支持测试用例的并发执行。

Selenium Grid 的架构

Selenium Hub 用来管理各个 Selenium Node 的注册信息和状态信息,并且接收远程客户端代码的测试调用请求,并把请求命令转发给符合要求的 Selenium Node 执行。

传统 Selenium Grid 的搭建方法

通过官网下载 selenium-server-standalone-.jar 文件。这里需要注意的是,不管是 Hub 还是 Node,都使用同一个 JAR 包启动,只是启动参数不同而已。

基于 Docker 的 Selenium Grid 的搭建方法

安装 Docker 环境后。

#创建了Docker的网络grid
$ docker network create grid

#以Docker容器的方式启动Selenium Hub,并且对外暴露了4444端口
$ docker run -d -p 4444:4444 --net grid --name selenium-hub selenium/hub:3.14.0-europium

#以Docker容器的方式启动并挂载了Chrome的Selenium Node
$ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-chrome:3.14.0-europium

#以Docker容器的方式启动并挂载了Firefox的Selenium Node
$ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-firefox:3.14.0-europium


来源于 极客时间 茹炳晟 软件测试52讲

原文地址:https://www.cnblogs.com/Uni-Hoang/p/13448314.html