dockpack.base_grid

GalaxyBuild Status

Basis Grid

Ein Selenium Grid, das mit docker-compose und anderen Werkzeugen läuft.

Screenshot Selenium Grid

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:

  1. Python 2.7 auf Python 3
  2. 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

Installieren
ansible-galaxy install dockpack.base_grid
GitHub Repository
Lizenz
mit
Downloads
74
Besitzer
CI/CD