
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 ! 🙂