Programiści spędzają niezliczone godziny na testowaniu funkcjonalności aplikacji internetowej zarówno lokalnie, jak i poza nią.
Przed Selenium wszystko odbywało się dosłownie ręcznie: dziesiątki osób testowało setki skryptów we wszystkich istniejących przeglądarkach, identyfikując problemy i próbując ustalić przyczyny ich występowania.
Co to jest Selenium
Pracując z większością języków programowania obsługiwanych przez wszystkie główne systemy operacyjne i przeglądarki, Selenium jest obecnie używany przez takie firmy jak Netflix, Google, HubSpot, Fitbit i inne. Cały pakiet zapewnia szereg rozwiązań dla różnych zadań testowych i potrzeb.
Infrastruktura garnituru Selenium
Sterownik sieciowy
W większości przypadków, kiedy ludzie mówią o Selenium, mają na myśli Selenium WebDriver. Większość rozwoju produktów skupia się na tym elemencie.
Automatyzacja testów w WebDriver jest często porównywana do jazdy taksówką. W kierowaniu taksówką i testowaniu biorą udział trzy komponenty: klient (inżynier testowy) – samochód (przeglądarka) – taksówkarz (WebDriver).
Zgodnie z tą analogią programista najpierw mówi sterownikowi, jak wchodzić w interakcję z elementami przeglądarki. Następnie WebDriver daje przeglądarce (maszynie) polecenia, które brzmią mniej więcej tak: gdy przycisk jest aktywny, kliknij przycisk. Następnie przeglądarka dostarcza sterownikowi informacji o wartościach i stanach elementów sieci, które są później przesyłane do skryptu. Mówiąc najprościej, narzędzie Selenium WebDriver służy do zbierania informacji i upewniania się, że aplikacja działa poprawnie, to znaczy, że kierowca wie, jak jeździć i gdzie jechać.
Selenium IDE
To jest rozszerzenie dla Firefoksa. Nie jest przeznaczony do programowania, jest łatwy do nauczenia i doskonale nadaje się do zadań prototypowania.
Praca w Selenium IDE nie wymaga umiejętności programistycznych, ponieważ wtyczka w zasadzie rejestruje działania inżyniera w przeglądarce i powtarza je. Programiści nie uważają go za samodzielny, pełnoprawny produkt, ale wystarczy pracować z prostymi skryptami.
Siatka selenowa
Umożliwia jednoczesne uruchamianie testów na wielu komputerach i przeglądarkach. Główną funkcją tego narzędzia jest oszczędność czasu. Jeśli potrzebujesz uruchomić, powiedzmy, 100 testów, aby skonfigurować cztery wirtualne lub fizyczne maszyny, używany jest Selenium Grid.

Biorąc pod uwagę, że skrypty przeglądarki są generalnie wolne, użycie technik wydajnościowych, takich jak testowanie równoległe, może pomóc w rozwiązaniu tego problemu. Może być również używany do równoległego testowania tej samej aplikacji w różnych przeglądarkach, gdy Firefox działa na jednym komputerze, Chrome na innym i tak dalej. Możliwe jest tworzenie różnych konfiguracji, łącząc różne wersje przeglądarek i systemów operacyjnych. Nie trzeba dodawać, że Grid używany w dużych środowiskach produkcyjnych oszczędza cztery razy więcej czasu.
Zalety
Selenium nie jest jedynym narzędziem do automatyzacji testów na rynku, ale jedynym darmowym narzędziem, które może konkurować z płatnymi produktami. Katalon Studio jest realną alternatywą, ale nie zapewnia tak wielu języków, nie działa na Linuksie i po prostu nie ma fanów.
Nic dziwnego, że nawet większe firmy nie spieszą się z przenoszeniem się na płatne strony i rozdawaniem tysięcy dolarów za to, co robi Selenium za darmo. Liczba firm współpracujących z Selenium przekracza 55 tys. Jej udział w rynku w zakresie testowania i automatyzacji wynosi prawie 30%.
Obsługa języków, platform, przeglądarek:
- Jawa
- C#
- PHP
- Rubin
- Perl
- Python
- JavaScript
- Cel-C
- Haskell
- R
- Okna
- Linuks
- Mac
- Android
- iOS
- Google Chrome
- Internet Explorer
- Firefox
- Safari
- Opera
- Microsoft Edge
- HtmlUnitDriver
Wady
Być może jedyną istotną wadą jest to, że Selenium można używać tylko w aplikacjach internetowych. Jest to jednak bardziej ograniczenie, a nie wada, ponieważ WinAppDriver można zintegrować z Selenium w celu testowania aplikacji komputerowych.
Krótka historia na zakończenie
W 2004 roku Jason Huggins stworzył framework JavaScript zaprojektowany, aby uwolnić jego twórcę od powtarzalnych testów ręcznych. Produkt, przewidywalnie jako pierwszy nazwany JavaScriptTestRunner, mógł uruchamiać testy bezpośrednio w przeglądarce, zarządzać interakcjami ze stronami i uruchamiać je ponownie bez ręcznego wprowadzania danych. To narzędzie JavaScript stało się popularne po tym, jak Huggins, zdając sobie sprawę ze swojego pełnego potencjału, udostępnił je jako open source i przemianował je na Selenium Remote Control. Nowatorską częścią było to, że do tej pory żadne inne narzędzie nie pozwalało testerom komunikować się z przeglądarką w wybranym przez nich języku programowania.
Jednak szybko okazało się, że przeglądarki stosują ograniczenia bezpieczeństwa w JavaScript, uniemożliwiając pełne wykorzystanie możliwości narzędzia. W tamtym czasie Google był zagorzałym użytkownikiem Selenium, a jego inżynierowie starali się jak najlepiej ominąć ograniczenia. Jeden z nich, Simon Stewart, rozpoczął pracę nad produktem, który będzie wchodzić w bezpośrednią interakcję z przeglądarkami i nazwał go WebDriver.