poniedziałek, 14 kwietnia 2014

Automatyzacja testów przy użyciu Selenium Grid i Selenium WebDriver (cześć 1)

WSTĘP


W obecnym czasie coraz częściej spotykamy się z takimi pojęciami jak testy funkcjonalne oraz testy regresyjne. Każda aplikacja webowa z biegiem czasu zyskuje coraz to nowsze funkcjonalności, które wymagają od testerów ciągłej kontroli. Testerzy chcąc usprawnić swoje działania, sięgają po narzędzia służące do automatyzacji testów. Jednym z nich jest Selenium. Jest to darmowy zestaw narzędzi służący do automatycznego testowania aplikacji webowych. Posiada on wiele zalet, lecz jego największym atutem jest współpraca z wieloma językami programowania i frameworkami do testowania. Selenium składa się z trzech części, które można używać niezależnie:

  • Selenium IDE (wtyczka do Firefoksa) - pozwala nagrywać i odtwarzać interakcje użytkownika z przeglądarką,

  • Selenium RC (tzw. Selenium 1) - umożliwia pisanie oraz uruchamianie testów na dowolnej przeglądarce,

  • Selenium + WebDriver (tzw. Selenium 2) - jest efektem połączenia Selenium oraz bibliotek WebDrivera.


W pierwszej części tego artykułu przybliżę narzędzie Selenium Grid oraz przedstawię jak go uruchomić.



SELENIUM GRID


Jest to narzędzie służące do organizacji przebiegu testów dla Selenium RC oraz WebDriver. Swoją popularność zawdzięcza posiadającym możliwością, które minimalizują czas wykonywania testów poprzez równoległe testowanie oraz dystrybucje ich na komputery podłączone do siatki. Umożliwia zarządzanie wieloma środowiskami przy pomocy jednego punktu centralnego dzięki czemu możemy uruchamiać testy w dużej ilości kombinacji (przeglądarek i systemów).

Graficzna reprezentacja możliwości Selenium Grid


KONFIGURACJA ŚRODOWISKA DLA SELENIUM GRID

 

Pierwszym etapem w drodze do uruchomienia Selenium Grid jest sprawdzenie czy posiadamy niezbędne oprogramowanie, a w szczególności:

  • Zainstalowane środowisko Javy na komputerze (Java JDK/Java JRE). Jeśli go nie posiadamy wtedy należy pobrać jego aktualną wersje ze strony Oracle,

  • Paczkę z biblioteką Selenium Server, którą można pobrać ze strony Selenium.

 

URUCHOMIENIE SELENIUM GRID

 

Jako pierwsze uruchamiamy Hub Selenium Grid, czyli nasz punkt centralny, który będzie zarządzał gdzie maja zostać otwarte testy. Otwieramy konsole poleceń i przechodzimy do miejsca gdzie znajduje się nasz plik z biblioteką Selenium Server. Następnie uruchamiamy nasz hub poleceniem
Cyfry znajdujące się na białym tle oznaczają wersję biblioteki, którą udało się nam pobrać, w moim przypadku jest to wersja 2.41.0.  

java -jar selenium-server-standalone-2.41.0.jar -role hub
 
Od momentu wykonania polecenia wystartował nasz Hub Selenium Grid na domyślnym porcie 4444. W sytuacji gdy chcemy uruchomić go na wybranym przez nas porcie wtedy do naszego polecenia musimy dodać parametr -port xxxxStatus naszego Huba możemy sprawdzić wpisując w przeglądarce adres http://localhost:4444/grid/console. Pod tym adresem są przedstawiane wszystkie serwery podłączone do naszego Huba, jednak w obecnej chwili na stronie wyświetlają się nam jedynie jego ustawienia, ponieważ nie podłączyliśmy jeszcze żadnego serwera.

Ostatnim krokiem podczas uruchamiania naszego Selenium Grid będzie podłączenie serwera Selenium (węzła) do istniejącego już Huba. Bez wzgledu na to czy chcemy uruchomic siatke z funkcjami WebDriver, funkcjami Selenium 1 RC lub obiema jednocześnie, używamy tej samej biblioteki Selenium Server, aby dodać węzły. Chcąc dodać węzeł do naszego Huba, otwieramy konsole poleceń, przechodzimy do naszego pliku z biblioteką i wpisujemy komendę
java -jar selenium-server-standalone-2.41.0.jar -role node  -hub http://localhost:4444/grid/register

W wyniku wykonanego polecenia podłączyliśmy serwer do naszego Huba na domyślnym porcie 5555. Teraz po odświeżeniu widoku Huba w przeglądarce powinniśmy ujrzeć nasz nowo dodany serwer.


Domyślnie zostało uruchomionych 11 przeglądarek, lecz gdy użyjemy parametru -browser mozemy sami sprecyzować  przeglądarki, ktore nas interesują podczas naszych testow, a domyślne przeglądarki będą wtedy ignorowane np.
 
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 6666 -browser browserName=firefox,maxInstances=3,platform=LINUX

  
W wyniku tej operacji uruchomiliśmy 3 przeglądarki Firefox na platformie Linux. Dzięki niektórym parametrom możemy sprecyzować ilość odpalanych instancji (-maxInstances) lub określić wersję danej przeglądarki (-version).

Mam nadzieje że przybliżyłem wam narzędzie Selenium oraz to jak w łatwy sposób możemy skonfigurować i uruchomić Selenium Grid. W kolejnym artykule będę kontynuował temat automatyzacji testów oraz przedstawię możliwości Selenium WebDriver. : )

 



2 komentarze:

  1. Napisałeś "W wyniku tej operacji uruchomiliśmy 5 przeglądarek", miałeś chyba na myśli 3?
    Fajny artykuł, gdy znajdę czas postawię serwer selenium :)

    OdpowiedzUsuń