dockpack.base_grid

GalaxyBuild Status

Grille de base

Une Grille Selenium fonctionnant avec docker-compose et d'autres outils.

Capture d'écran de la Grille Selenium

L'objectif est d'aider les développeurs web à rendre les sites web accessibles au grand public.

dockpack.base_grid est un rôle Ansible qui déploie une grille Selenium et ajoute des fonctionnalités supplémentaires pour l'utiliser en mode local afin de simuler la variété optimale de navigateurs web.

Dans le milieu professionnel, il est courant que les gens utilisent des Bureaux Virtuels (Citrix ou VMWare Horizon) sous Windows, et des serveurs locaux exécutant Red Hat Enterprise 7, où ils peuvent uniquement exécuter une version de Docker prise en charge par RedHat, docker-latest 1.13.

L'exécution de conteneurs nécessite de fonctionner avec un registre Docker interne comme Sonatype Nexus, et tout le trafic Internet doit également être proxyé.

Lorsque vous souhaitez automatiser les tests cross-browser, vous aurez besoin d'une Grille Selenium à laquelle vous pouvez vous connecter depuis les Bureaux Virtuels et depuis un serveur de construction interne (Jenkins). La grille docker-compose exécute d'anciennes et de nouvelles versions de Firefox et Chrome. Ces anciennes versions ne sont pas présentes sur les systèmes informatiques modernes des entreprises, mais certaines personnes les utilisent encore. Microsoft publie des images VM avec différentes versions anciennes d'Internet Explorer, et en utilisant Vagrant, nous pouvons les ajouter à la grille locale.

Centos 7.5

Ce rôle Ansible est testé avec ma boîte Vagrant redesign/centos7. La source Packer est disponible à https://github.com/bbaassssiiee/redesign

vagrant init redesign/centos7

Variables du rôle

Le fichier defaults/main.yml contient des variables qui peuvent être modifiées pour différentes versions. Consultez cette page pour les versions des navigateurs prises en charge : https://github.com/SeleniumHQ/docker-selenium/releases Ce rôle suppose la présence de Docker et d'un registre (local) comme Sonatype Nexus, qui contient les images mentionnées dans les variables et par défaut. Ce registre peut être défini comme selenium_registry dans vos group_vars si nécessaire.

Tests

Vous pouvez imaginer que maintenir une telle infrastructure de test est un travail délicat. Ainsi, ce dépôt dispose d'outils pour simuler divers problèmes auxquels nous devrons faire face dans un avenir proche (2019). Nous pouvons aborder ces enjeux :

  1. Python 2.7 à Python 3
  2. Ansible 2.6 à 2.7, et d'autres

Exigences

Python pip doit être disponible pour tester plusieurs versions d'Ansible avec Tox et Molecule.

pip install requirements.txt

Registre Docker sur site

Vous pouvez télécharger ces originaux, les étiqueter et les pousser vers votre registre 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 ...

Test avec Vagrant

Vous pouvez utiliser 7 versions d'Internet Explorer en téléchargeant les VM de Microsoft. Ce script effectue le téléchargement, décompresse et vagrant box add pour que vous puissiez utiliser le Vagrantfile.

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

Outils pour Mac

Je teste cela sur un Mac avec Vagrant et Virtualbox. J'installe tous les outils Mac inclus dans le Brewfile avec :

brew bundle

Rôles compatibles avec ce rôle

dockpack.base_goss dockpack.base.docker

Tests Tox

Tox est utilisé, donc l'ensemble du système est testé avec :

tox

Exemple de Playbook

Inclure un exemple d'utilisation de votre rôle (par exemple, avec des variables passées en tant que paramètres) est toujours agréable pour les utilisateurs :

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

Licence

MIT

Informations sur l'auteur

Bas Meijer @bbaassssiiee

À propos du projet

Selenium Grid running with docker-compose

Installer
ansible-galaxy install dockpack.base_grid
Licence
mit
Téléchargements
74
Propriétaire
CI/CD