dockpack.base_grid
Grille de base
Une Grille Selenium fonctionnant avec docker-compose et d'autres outils.
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 :
- Python 2.7 à Python 3
- 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