Selenium – od czego rozpocząć naukę?

Zastanawiałem się jak w sensowny sposób podejść do tematu przedstawienia nauki Selenium Webdrivera. Rozważałem stworzenie poradnika od początku… po czym zrezygnowałem z tego pomysłu. W Internecie jest bardzo dużo dobrych materiałów. Stwierdziłem, więc iż przysłowiowe „wynajdywanie koła od nowa” mija się z celem.

Stąd zamiast pisać kolejny poradnik, postanowiłem podzielić się czymś innym – wiedzą:

  • od czego rozpocząć naukę;
  • na co zwrócić uwagę (jakie biblioteki są wykorzystywane z Selenium);
  • jakie są wzorce projektowe dla Selenium.

 

Od czego rozpocząć więc naukę Selenium?

Jakiś czas temu pisałem o ciekawej książce, która dostępna jest za darmo (dla leniwych link). Szczerze zachęcam do tego aby od niej rozpocząć naukę. W prosty i przejrzysty sposób przeprowadza bowiem przez poszczególne aspekty Selenium.

Jedynym jej minusem jest fakt, iż książka dostępna jest w postaci elektronicznej. Nie każdemu może to przypaść do gustu.

 

Na co zwrócić uwagę?

Selenium bardzo rzadko występuje bez dodatkowych bibliotek (tak jak np. javie praktycznie zawsze towarzyszy Spring i Hibernate). Ucząc się Selenium, warto poznać więc dodatkowe biblioteki, które w znacznym stopniu ułatwiają ale i zmieniają pracę:

  • Selenium Grid – umożliwia równoległą realizację testów dla skryptów selenium;
  • Cucumber – implementacja coraz częściej wykorzystywanej metodyki BDD (Behaviour Driven Development), umożliwiająca pisanie scenariuszy w języku naturalnym (Gherkin);
  • JUnit – framework uruchamiający testy i prezentujący wyniki z ich realizacji;
  • TestNG – framework uruchamiający testy i prezentujący wyniki z ich realizacji (posiada więcej możliwości niż JUnit);
  • AutoItX – port dla narzędzia AutoIt w języku java. Wspiera Selenium w automatyzacji ekranów nie webowych (autoryzacja w domenie Windows, pobieranie pliku etc).
  • SikuliX – port dla narzędzia Sikuli w języku Java. Zastosowanie analogiczne jak w przypadku AutoIt z tą różnicą, iż działa w oparciu o OCR. Zdarzają się sytuację, w których rozwiązanie jest przydatne;
  • Jenkis – jako platforma do zarządzania uruchomieniami testów oraz archiwizująca wyniki z jego realizacji.

 

Wzorce projektowe

Tworzenie skryptów w oparciu o Selenium sprowadza się do pisania kodu. Nie jest więc czymś niezwykłym, iż powstały wzorce projektowe ułatwiające tworzenie skryptów (a raczej ich późniejsze utrzymanie).

Wzorce o których mowa to:

 

O ile Page Factory zamieszczam jako ciekawostkę (z jakiegoś powodu, widziałem go w użyciu jedynie przez prawdziwych entuzjastów 🙂 ) o tyle bez znajomości wzorca Page Object nie ma sensu uczyć się Selenium. Bez niego utrzymanie skryptów staje się koszmarem.

 

Kilka słów mądrości na zakończenie…

Nie warto tracić sił na tworzenie własnych mechanizmów raportujących oraz uruchamiających testy. W praktyce zawsze stosuje się Framework typu: JUnit lub TestNG.

Osobiście, proponuje zacząć naukę od JUnita. Są ku temu dwa powody:

  • jest prostszy niż TestNG (posiada mniej funkcjonalności);
  • jest wykorzystywany przez Cucumbera, który jest coraz częściej stosowany wraz z Selenium.

 

Wiem, iż są jeszcze osoby, które nie wiedzą czym jest Apache Maven stąd w kilku słowach: Maven jest narzędziem, rozwiązującym zależności związane z importem dodatkowych bibliotek. Instalacja Selenium, zamiast manualnego importu wymaganych plików do projektu, sprowadza się do wpisania jednej linii w pliku konfiguracyjnym Maven. Po ponownym zbudowaniu projektu, biblioteka jest już dostępna do pracy.

Narzędzie jest bardzo proste w obsłudze, stąd proponuje aby od razu w oparciu o niego tworzyć skrypty. Nauka bardzo szybko się zwróci w przypadku konieczności dodawania kolejnych bibliotek (np.: nowszy JUnit, TestNG, Cucumber et).

Jeśli ktoś jest zwolennikiem gradle, nie ma przeszkód aby z niego nie korzystać. Jakiekolwiek narzędzie do rozwiązywania zależności pomiędzy bibliotekami jest lepsze niż jego brak.

 

Kilka przydatnych linków:

2 thoughts on “Selenium – od czego rozpocząć naukę?

  1. Cześć,
    dobry post:)
    Moje uwagi to:
    *http://junit.org/junit4/ – zwróć uwagę, gdzie jest duża literka, a gdzie mała. Pisze się JUnit a nie jUnit.
    *Apache Maven – to nie jest aplikacja, tylko narzędzie raczej.
    *Nie istnieje słowo autentykacja w języku polskim. Moim zdaniem dobrym odpowiednikiem jest słowo uwierzytelnianie.

    Pozdrawiam
    Beata

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *