dockpack.base_grid
Podstawowa Siatka
Siatka Selenium działająca z użyciem docker-compose i innych technologii.
Celem jest pomoc programistom w tworzeniu stron internetowych, które będą działały dla szerokiej publiczności.
dockpack.base_grid
to rola Ansible, która wdraża siatkę Selenium i dodaje
dodatkowe funkcje, aby można było używać jej w trybie lokalnym do symulacji różnych
przeglądarek internetowych.
W firmach często korzysta się z Wirtualnych Pulpitów (Citrix lub VMWare Horizon) na systemach Windows oraz serwerów lokalnych działających na Red Hat Enterprise 7, które mogą obsługiwać tylko wersję Dockera zalecaną przez RedHat, docker-latest 1.13.
Uruchamiane kontenery powinny współpracować z wewnętrznym rejestrem Dockera, takim jak Sonatype Nexus, a cały ruch internetowy powinien być przekierowywany przez proxy.
Aby zautomatyzować testowanie między przeglądarkami, potrzebujesz Siatki Selenium, do której można się podłączyć z Wirtualnych Pulpitów i lokalnego serwera kompilacji (Jenkins). Siatka docker-compose obsługuje starsze i nowsze wersje Firefoxa i Chrome. Starsze wersje nie są obecne w nowoczesnych systemach IT, ale niektórzy użytkownicy nadal z nich korzystają. Microsoft publikuje obrazy VM z różnymi starszymi wersjami Internet Explorera. Używając Vagrant, możemy dodać je do lokalnej siatki.
Centos 7.5
Ta rola Ansible jest testowana z moim boxem Vagrant redesign/centos7. Źródło Packer jest dostępne pod adresem https://github.com/bbaassssiiee/redesign
vagrant init redesign/centos7
Zmienne roli
Plik defaults/main.yml
zawiera zmienne, które można zmieniać dla różnych
wersji. Zajrzyj na tę stronę, aby sprawdzić obsługiwane wersje przeglądarek:
https://github.com/SeleniumHQ/docker-selenium/releases
Ta rola zakłada obecność Dockera i (lokalnego) rejestru, takiego jak Sonatype
Nexus, trzymającego obrazy wymienione w zmiennych i ustawieniach domyślnych. Ten rejestr można
ustawić jako selenium_registry
w plikach group_vars, jeśli zajdzie taka potrzeba.
Testowanie
Możesz sobie wyobrazić, że utrzymywanie takiej infrastruktury testowej jest skomplikowanym zadaniem, dlatego to repozytorium zawiera narzędzia do symulacji różnych rzeczy, z którymi musimy się zmierzyć w najbliższej przyszłości (2019). Możemy zająć się tymi kwestiami:
- Przejście z Pythona 2.7 na Pythona 3
- Przejście z Ansible 2.6 na 2.7 i inne
Wymagania
Python pip musi być dostępny w celu przetestowania wielu wersji Ansible za pomocą Tox i Molecule.
pip install requirements.txt
Lokalny rejestr Dockera
Możesz pobrać te obrazy, otagować je i przesłać do swojego lokalnego rejestru.
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 ...
Testowanie Vagrant
Możesz użyć 7 wersji Internet Explorera, pobierając maszyny wirtualne od Microsoftu.
Ten skrypt wykonuje pobieranie, dekompresję oraz vagrant box add
, abyś mógł skorzystać z
Vagrantfile
.
cd vagrant
./windows_boxes.py
vagrant up IE8Win7
vagrant up IE9Win7
vagrant up IE10Win7
vagrant up IE11Win7
vagrant up IE11Win81
vagrant up MSEdgeWin10
Narzędzia dla Maca
Testuję to na Macu z Vagrantem i Virtualboxem. Instaluję wszystkie narzędzia dla Maca
zawarte w Brewfile
za pomocą:
brew bundle
Role, które dobrze współpracują z tą rolą
dockpack.base_goss dockpack.base.docker
Testowanie Tox
Tox jest używany, więc całość jest testowana z:
tox
Przykład Playbooka
Zawierając przykład, jak używać swojej roli (na przykład, z przekazywanymi zmiennymi jako parametrami), zawsze jest to miłe dla użytkowników:
- name: provision selenium
hosts: testsystem
become: yes
roles:
- { role: dockpack.base_grid, tags: 'selenium'}
Licencja
MIT
Informacje o autorze
Bas Meijer @bbaassssiiee
Selenium Grid running with docker-compose
ansible-galaxy install dockpack.base_grid