dockpack.base_grid
Basis Grid
Ein Selenium Grid, das mit docker-compose und anderen Werkzeugen läuft.
Ziel ist es, Webentwicklern zu helfen, Webseiten für die breite Öffentlichkeit funktionsfähig zu machen.
dockpack.base_grid
ist eine Ansible-Rolle, die ein Selenium Grid bereitstellt und einige Extras hinzufügt, sodass Sie es im lokalen Modus verwenden können, um eine optimale Vielfalt an Webbrowsern zu simulieren.
In der Unternehmenswelt haben Leute oft virtuelle Desktops (Citrix oder VMWare Horizon) für Windows und lokale Server mit Red Hat Enterprise 7, wo sie nur eine Docker-Version ausführen können, die von RedHat unterstützt wird, docker-latest 1.13.
Die Ausführung von Containern müsste mit einem internen Docker-Registry wie Sonatype Nexus funktionieren, und der gesamte Internetverkehr sollte über einen Proxy geleitet werden.
Wenn Sie automatisierte Cross-Browser-Tests durchführen möchten, benötigen Sie ein Selenium Grid, auf das Sie von den virtuellen Desktops und von einem internen Buildserver (Jenkins) aus zugreifen können. Das docker-compose Grid unterstützt alte und neue Versionen von Firefox und Chrome. Diese älteren Versionen sind in modernen Unternehmens-IT-Systemen nicht vorhanden, aber einige Nutzer verwenden sie immer noch. Microsoft veröffentlicht VM-Images mit verschiedenen älteren Versionen von Internet Explorer, die wir mit Vagrant zum lokalen Grid hinzufügen können.
Centos 7.5
Diese Ansible-Rolle wurde mit meiner redesign/centos7 Vagrant-Box getestet. Der Packer-Quellcode ist verfügbar unter https://github.com/bbaassssiiee/redesign
vagrant init redesign/centos7
Rollenvariablen
Die Datei defaults/main.yml
enthält Variablen, die hauptsächlich für verschiedene Versionen geändert werden können. Weitere Informationen zu den unterstützten Browser-Versionen finden Sie auf dieser Seite: https://github.com/SeleniumHQ/docker-selenium/releases. Diese Rolle setzt voraus, dass Docker und ein (lokales) Registry wie Sonatype Nexus vorhanden sind, das die in den Variablen und Standardwerten genannten Images enthält. Dieses Registry kann, falls erforderlich, als selenium_registry
in Ihren group_vars festgelegt werden.
Tests
Man kann sich vorstellen, dass die Wartung einer solchen Testinfrastruktur eine komplexe Aufgabe ist. Daher bietet dieses Repository Werkzeuge, um verschiedene Herausforderungen zu simulieren, mit denen wir in der nahen Zukunft (2019) umgehen müssen. Wir können folgende Themen ansprechen:
- Python 2.7 auf Python 3
- Ansible 2.6 auf 2.7 und andere
Anforderungen
Python pip muss verfügbar sein, um mehrere Versionen von Ansible mit Tox und Molecule zu testen.
pip install requirements.txt
On-Premise Docker Registry
Sie können diese Originale herunterladen, sie taggen und in Ihr lokales Registry hochladen.
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-Tests
Sie können 7 Versionen von Internet Explorer verwenden, indem Sie die VMs von Microsoft herunterladen. Dieses Skript lädt herunter, entpackt und führt vagrant box add
aus, damit Sie die Vagrantfile
verwenden können.
cd vagrant
./windows_boxes.py
vagrant up IE8Win7
vagrant up IE9Win7
vagrant up IE10Win7
vagrant up IE11Win7
vagrant up IE11Win81
vagrant up MSEdgeWin10
Mac-Tools
Ich teste dies auf einem Mac mit Vagrant und Virtualbox. Ich installiere alle Mac-Tools, die im Brewfile
enthalten sind, mit:
brew bundle
Rollen, die gut mit dieser Rolle harmonieren
dockpack.base_goss
dockpack.base.docker
Tox-Tests
Tox wird verwendet, um das gesamte System zu testen mit:
tox
Beispiel-Playbook
Ein Beispiel, wie Sie Ihre Rolle verwenden können (zum Beispiel mit übergebenen Variablen) ist für die Benutzer ebenfalls hilfreich:
- name: selenium bereitstellen
hosts: testsystem
become: ja
roles:
- { role: dockpack.base_grid, tags: 'selenium'}
Lizenz
MIT
Autor Informationen
Bas Meijer
@bbaassssiiee