base_grid

GalaxyBuild Status

Базовая Сетка

Selenium Grid, работающая с помощью docker-compose и других инструментов.

Скриншот Selenium Grid

Цель - помочь веб-разработчикам создать сайты, работающие для широкой аудитории.

dockpack.base_grid - это роль Ansible, которая разворачивает Selenium Grid и добавляет некоторые дополнительные функции, чтобы вы могли использовать его в локальном режиме для имитации оптимального набора веб-браузеров.

В корпоративной жизни часто используются Виртуальные Рабочие Станции (Citrix или VMWare Horizon) для Windows, а также локальные серверы на Red Hat Enterprise 7, где можно запускать только версию Docker, которая поддерживается RedHat, docker-latest 1.13.

Запуск контейнеров должен работать с внутренним реестром Docker, таким как Sonatype Nexus, а весь интернет-трафик должен быть проксирован.

Когда вы хотите автоматизировать кросс-браузерное тестирование, вам нужна Selenium Grid, к которой можно подключиться из Виртуальных Рабочих Станций и из локального сборочного сервера (Jenkins). Сетка docker-compose запускает старые и новые версии Firefox и Chrome. Эти старые версии отсутствуют на современных корпоративных IT-системах, но некоторые люди все еще их используют. Microsoft публикует образы ВМ с различными старыми версиями Internet Explorer, используя Vagrant, мы можем добавить их в локальную сетку.

Centos 7.5

Эта роль Ansible протестирована с помощью моего Vagrant-бокса redesign/centos7. Исходный код Packer доступен по адресу https://github.com/bbaassssiiee/redesign

vagrant init redesign/centos7

Переменные Роли

Файл defaults/main.yml содержит переменные, которые можно изменить для разных версий в основном. Обратитесь к этой странице для получения информации о поддерживаемых версиях браузеров: https://github.com/SeleniumHQ/docker-selenium/releases Эта роль предполагает наличие Docker и (локального) реестра, такого как Sonatype Nexus, который содержит образы, упомянутые в переменных и значениях по умолчанию. Этот реестр можно указать как selenium_registry в ваших group_vars, если это необходимо.

Тестирование

Вы можете представить, что поддержка такой тестовой инфраструктуры - это сложная работа, поэтому в этом репозитории есть инструменты для имитации различных задач, с которыми нам нужно справляться в ближайшем будущем (2019 год). Мы можем решить следующие проблемы:

  1. Python 2.7 на Python 3
  2. Ansible 2.6 на 2.7 и другие

Требования

Python pip должен быть доступен для тестирования нескольких версий Ansible с Tox и Molecule.

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, скачав виртуальные машины Microsoft. Этот скрипт скачивает, распаковывает и добавляет в Vagrant, чтобы вы могли использовать 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

Я тестирую это на Mac с Vagrant и Virtualbox. Я устанавливаю все инструменты для Mac, включенные в Brewfile, с помощью:

brew bundle

Роли, которые хорошо сочетаются с этой ролью

dockpack.base_goss dockpack.base.docker

Тестирование с Tox

Используется Tox, чтобы протестировать всю систему с:

tox

Пример Playbook

Включение примера того, как использовать вашу роль (например, с переданными как параметры переменными), всегда полезно для пользователей:

- name: provision selenium
  hosts: testsystem
  become: yes
  roles:
    - { role: dockpack.base_grid, tags: 'selenium'}

Лицензия

MIT

Информация об авторе

Бас Мейер @bbaassssiiee

Установить
ansible-galaxy install dockpack/base_grid
Лицензия
mit
Загрузки
60
Владелец
CI/CD