#dockerApps03 – Selenoid – Alternatywa dla Selenium Grid oraz Zelenium

Reading Time: 5 minutes

Hej kolejny wpis, tym razem po lupę bierzemy Selenoid.
Wpisy dotyczące dwóch poprzednio omawianych narzędzi, znajdziecie pod odpowiednimi kategoriami, czyli tu – > https://gregkaqa.pl/index.php/category/administracja/

Wymaganie do oczywiście Docker Windows, opis instalacji także znajdziecie w linku powyżej. Najlepiej pozbywać się starych obrazów jeśli testowaliście Zalenium oraz zatrzymać je wszystkie.

docker system prune -a --volumes
Jednym poleceniem usuwacie wszystko.

Ja dzięki temu zyskałem 5.2GB

Pobranie instalacja Selenoid

Selenoid na Windowsa jest tak jakby przeportowany z Linuxa, tzn. na początku myślałem zrobię sobie byle gdzie to wszystko i będzie działać.
Jednak komunikat, że nie mam plików w /usr/bin/selenoid – dał jasno do zrozumienia, że to gdzie umieszczamy nasze pliki ma znaczenie.

Robimy następujące rzeczy za pomocą cmd lub exploratora windows :
przechodzimy na dysk systemowy u mnie to C:
następnie wchodzimy do katalogu użytkwonika na którym pracujemy z dockerem u mnie wygląda on tak : cd C:\Users\gregk\
tam tworzymy katalon o takiej nazwie : mkdir selenoid

Dobra w folderze : C:\Users\gregk\selenoid, tworzymy plik browsers.json

Jak sama nazwa pliku wskazuje jest to plik dot. przeglądarek.

{
"firefox": {
"default": "latest",
"versions": {
"latest": {
"image": "selenoid/firefox",
"port": "4444",
"path": "/wd/hub",
"tmpfs": {"/tmp":"size=512m"}
}
}
},
"chrome": {
"default": "latest",
"versions": {
"latest": {
"image": "selenoid/chrome",
"port": "4444",
"tmpfs": {"/tmp":"size=512m"}
}
}
}
}

Jak widzimy to najprostsza wersja czyli standardowo firefox, chrome.
W wersji stabilnej, zapisujemy plik i lecimy dalej.

docker run -d --name selenoid -p 4444:4444 -v //var/run/docker.sock:/var/run/docker.sock -v /c/users/gregk/selenoid:/etc/selenoid:ro aerokube/selenoid:latest-release

Wklejamy to, najlepiej w notepadzie zmieniacie sobie nazwe użytkownika na swojego (gregk na swoją nazwe z katalogu użytkowników).
Ścieżka jest jak widać, w formacie linuxowym oraz przed literą dysku znajduje się slash.

Po zastosowaniu komendy całość przebiegła dość szybko.

Po wpisaniu do przeglądarki localhost:4444, tak jak to ustaliliśmy w komendzie do uruchamiania port selenoida czyli 4444.

Niby wszystko nam będzie działać jak puścimy testy, ale lepiej od razu postawić sobie coś takiego jak UI czyli Selenoidui, a więc jest to nic innego jak nakładka graficzna pod selenoid, która ułatwi nam obczajenie co tam się dzieje, z naszymi kontenerami, testami.

docker run -d --name selenoid-ui --link selenoid -p 8080:8080 aerokube/selenoid-ui --selenoid-uri=http://selenoid:4444

No i też się nam coś pobiera i szybciutko się skończyło.

Wpisując docker ps mamy dwie składowe selenoid i ui.

To samo w przeglądarka wpisujemy też localhost:8080 ale właśnie widzicie inny port i ten port służy do oglądania UI.

Tutraj na przykładzie javy mamy jasną informacje czego zapomnieliśmy, możemy to pobrać teraz lub wcześniej – wszystko jedno.
A więc brakuje nam obrazów przeglądarek pod selenoida czyli firefoxa oraz chroma.

docker pull selenoid/firefox:latest

Analogicznie chrome tak samo, zakładka tags i bierzemy latesta.

docker pull selenoid/chrome:latest

I te obrazy będą pobierały się najdłużej więc, warto pójść zrobić sobie kawę lub zagnieść ciasto na pizze 😀

Można też odpalić drugie cmd, wtedy nasza przerwa jest dłuższa.

Testy się udały, ale jedna rzecz jaka na maxa pomaga, w konfiguracji to do :
localhost:8080/#/capabilities/

SelenoidUI czyli nakładka graficzna na selenoid.

Testy się udały, ale jedna rzecz jaka na maxa pomaga, w konfiguracji to do :
localhost:8080/#/capabilities/
Moje testy się pokazały lecz bez podglądu 🙂

U mnie do javy wygląda to tak :

Kolejna rzecz która mi się wywaliła to brak obrazu do obsługi nagrywania video, nie wyskoczyłby mi ten błąd gdyby capa była ustawiona na false, ta dotycząca enableVideo.

Pobieramy w cmd kolejny obraz 😛

docker pull selenoid/video-recorder:latest-release

Właściwie po image wiemy ze w CMD, wystarczy na początek dopisać tylko docker pull i to z konsoli javy 😛

drivero.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

Testy mogą dość szybko przelecieć przed oczami, zatem to wyżej poczeka, wam o tyle sekund ile chcecie w celu zobaczenia czy coś się dzieje.

U mnie chwila czasu i kontenery zostały zabite, tak więc serwer / komputer po wykonaniu testów nie są jakoś obciążone.

Na Pythonie podobnie testy działają, tylko u mnie coś z angielskim tytułem strony mniejsza o to 😀

Niestety walka z Firefoxem w Selenoid okazała się nieskuteczna.

Z poziomu ręcznego tworzenia sesji oraz testów chroma śmiga jak ta lala.
O tyle Firefoxa, próbowałem różne wersje i nie chce mi działać 🙁
W Pythonie mam np. tak :
Jeśli będziecie sami mieć problemy :
docker logs kontener kontenery przydatne logi
docker restart id kontenerów
docker ps takie co działają listuje
docker ps -a z takimi co się nawet zatrzymały z niewiadomego powodu

Jak rozwiąże problem z FF dam znaka w następnym wpisie ! 😛

Niestety na tym polega rozwiązywanie problemów spędzenia nawet kilku godzin, żeby znaleźć rozwiązanie, być może np. zaniżenie wersji Selenoid to jakiejś wcześniejszej oraz ui by pomogło ? Być może tak.
Dodam odpowiedni wpis jak poradziłem sobie z Firefoxem.
Niemniej dziwi mnie bezproblemowość na Windowsie Zalenium i zwykłego Selenium Grida.
Zasady, które słyszałem od programistów w pom.xml dotyczą też wszystkiego innego. Mianowicie nie stosujemy latestów tylko sami kontrolujmy wersje. W następnym wpisie, napiszę więcej tego Selenoida + popróbuje paru innych tricków, jakie uda mi się znaleźć. No i oczywiście muszę znaleźć przyczynę nie działania Firefoxa 🙁 🙂
Dzięki za przeczytanie i zapraszam na następny wpis ! 🙂

Napisz komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.