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 年)需要处理的各种问题的工具。我们可以解决以下问题:

  1. 从 Python 2.7 到 Python 3
  2. 从 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

安装
ansible-galaxy install dockpack.base_grid
许可证
mit
下载
74
拥有者
CI/CD