dockpack.base_grid
基础网格
一个使用 docker-compose 和其他工具运行的 Selenium 网格。
目标是帮助网页开发人员使网站对公众可用。
dockpack.base_grid
是一个 Ansible 角色,用于部署 Selenium 网格,并增加一些额外功能,以便您可以在本地模式下使用它来模拟各种 Web 浏览器。
在企业生活中,人们通常使用虚拟桌面(如 Citrix 或 VMWare Horizon)来运行 Windows,以及运行 Red Hat Enterprise 7 的本地服务器,只能运行 RedHat 支持的 Docker 版本,即 docker-latest 1.13。
运行的容器需要与内部 Docker 注册表(如 Sonatype Nexus)协作,并且所有互联网流量应被代理。
当您希望自动化跨浏览器测试时,需要一个可以从虚拟桌面和内部构建服务器(如 Jenkins)连接的 Selenium 网格。docker-compose 网格可运行旧版和新版的 Firefox 和 Chrome。这些旧版在现代企业 IT 系统中通常不可用,但一些人仍在使用它们。微软发布了带有各种旧版 Internet Explorer 的虚拟机镜像,我们可以使用 Vagrant 将这些添加到本地网格中。
Centos 7.5
这个 Ansible 角色经过我针对 redesign/centos7 Vagrant 盒子的测试。Packer 源码可在以下网址获取:https://github.com/bbaassssiiee/redesign
vagrant init redesign/centos7
角色变量
defaults/main.yml
文件中包含可以根据不同版本更改的变量。请参见此页面以了解支持的浏览器版本:https://github.com/SeleniumHQ/docker-selenium/releases 该角色假设存在 Docker 和类似 Sonatype Nexus 的(本地)注册表,注册表中包含 vars 和 defaults 中提到的镜像。如果需要,此注册表可在您的 group_vars 中设置为 selenium_registry
。
测试
您可以想象,维护这样的测试基础设施是一项复杂的工作,因此此仓库具有模拟我们在不久的将来(2019 年)需要处理的各种问题的工具。我们可以解决以下问题:
- 从 Python 2.7 到 Python 3
- 从 Ansible 2.6 到 2.7,及其他
要求
需要安装 Python pip,以便使用 Tox 和 Molecule 测试多个 Ansible 版本。
pip install requirements.txt
本地 Docker 注册表
您可以下载这些原版镜像,对其进行标记并将其推送到本地注册表。
docker pull selenium/node-firefox:3.141.59-iron
docker pull selenium/node-firefox:3.12.0-cobalt
docker pull selenium/node-chrome:3.141.59-iron
docker pull selenium/node-chrome:3.8.1-erbium
docker pull selenium/hub:3.141.59-iron
docker images
docker tag ...
docker push ...
Vagrant 测试
您可以通过下载微软的虚拟机使用 7 个版本的 Internet Explorer。此脚本进行下载、解压和 vagrant box add
,以便您可以使用 Vagrantfile
。
cd vagrant
./windows_boxes.py
vagrant up IE8Win7
vagrant up IE9Win7
vagrant up IE10Win7
vagrant up IE11Win7
vagrant up IE11Win81
vagrant up MSEdgeWin10
Mac 工具
我在带有 Vagrant 和 Virtualbox 的 Mac 上进行测试。我通过以下命令安装 Brewfile
中包含的所有 Mac 工具:
brew bundle
与该角色兼容的角色
- dockpack.base_goss
- dockpack.base.docker
Tox 测试
使用 Tox,因此完整的操作可通过以下命令进行测试:
tox
示例剧本
提供一个如何使用您的角色的示例(例如,作为参数传递的变量)对用户来说也很有帮助:
- name: provision selenium
hosts: testsystem
become: yes
roles:
- { role: dockpack.base_grid, tags: 'selenium'}
许可
MIT
作者信息
Bas Meijer
@bbaassssiiee