dockpack.base_grid

GalaxyBuild Status

Base Grid

Una Selenium Grid que se ejecuta con docker-compose y otros.

Captura de pantalla de Selenium Grid

El objetivo es ayudar a los desarrolladores web a hacer que los sitios funcionen para el público en general.

dockpack.base_grid es un rol de Ansible que despliega una Selenium Grid y agrega algunas características adicionales para que puedas usarla en modo local y simular la variedad óptima de navegadores web.

Es bastante común en la vida corporativa, que las personas tengan Escritorios Virtuales (Citrix o VMWare Horizon) para Windows y servidores locales ejecutando Red Hat Enterprise 7, donde solo podrían ejecutar una versión de Docker que es compatible con RedHat, docker-latest 1.13.

Los contenedores en ejecución necesitarían funcionar con un registro de Docker interno como Sonatype Nexus, y todo el tráfico de internet debería ser proxy.

Cuando quieres automatizar pruebas en varios navegadores, necesitarías una Selenium Grid a la que puedas conectarte desde los Escritorios Virtuales y desde un servidor de compilación interno (Jenkins). La grid de docker-compose ejecuta versiones antiguas y nuevas de Firefox y Chrome. Estas versiones más antiguas no están presentes en los sistemas de TI corporativos modernos, pero algunas personas todavía las utilizan. Microsoft publica imágenes de VM con varias versiones más antiguas de Internet Explorer, usando Vagrant podemos agregar estas a la grid local.

Centos 7.5

Este rol de Ansible se prueba con mi caja de Vagrant redesign/centos7. El código fuente de Packer está disponible en https://github.com/bbaassssiiee/redesign

vagrant init redesign/centos7

Variables del Rol

El archivo defaults/main.yml contiene variables que pueden cambiarse para diferentes versiones en su mayoría. Consulta esta página para las versiones de navegador que se admiten: https://github.com/SeleniumHQ/docker-selenium/releases Este rol asume la presencia de Docker y un registro (local) como Sonatype Nexus que contenga las imágenes mencionadas en las variables y valores predeterminados. Este registro se puede definir como selenium_registry en tus group_vars si es necesario.

Pruebas

Puedes imaginar que mantener una infraestructura de pruebas así es un trabajo complicado, por lo tanto, este repositorio tiene herramientas para simular varias cosas con las que necesitamos lidiar en un futuro cercano (2019) Podemos abordar estos problemas:

  1. Python 2.7 a Python 3
  2. Ansible 2.6 a 2.7, y otros

Requisitos

Necesitas tener Python pip disponible para probar múltiples versiones de Ansible con Tox y Molecule.

pip install requirements.txt

Registro de Docker Local

Puedes descargar estos originales, etiquetarlos y subirlos a tu registro local.

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 ...

Pruebas con Vagrant

Puedes usar 7 versiones de Internet Explorer descargando las VMs de Microsoft. Este script hace la descarga, descompresión y vagrant box add para que puedas usar el Vagrantfile.

cd vagrant
./windows_boxes.py
vagrant up IE8Win7
vagrant up IE9Win7
vagrant up IE10Win7
vagrant up IE11Win7
vagrant up IE11Win81
vagrant up MSEdgeWin10

Herramientas para Mac

Pruebo esto en una Mac con Vagrant y Virtualbox. Instalo todas las herramientas de Mac incluidas en el Brewfile con:

brew bundle

Roles que combinan bien con este rol

dockpack.base_goss dockpack.base.docker

Pruebas con Tox

Se utiliza Tox, así que todo se prueba con:

tox

Ejemplo de Playbook

Incluir un ejemplo de cómo usar tu rol (por ejemplo, con variables pasadas como parámetros) siempre es útil para los usuarios:

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

Licencia

MIT

Información del Autor

Bas Meijer @bbaassssiiee

Acerca del proyecto

Selenium Grid running with docker-compose

Instalar
ansible-galaxy install dockpack.base_grid
Licencia
mit
Descargas
74
Propietario
CI/CD