Wstęp do automatyzacji UI z Selenide – Twój pierwszy test w 10 minut
Czy Selenium w 2021 to optymalna droga do automatyzacji? Od czasu jego pojawienia pojawiło się wiele frameworków, które również mogą pomóc nam automatyzować testy. Dla JS’a dużą popularność zdobywają takie narzędzia jak Cypress czy CodeceptJS. Dziś pokażę Wam Selenide, który pozwala automatyzować testy przy pomocy Javy.
Pytanie, czy wybierając automatyzacje w Javie, jesteśmy skazani na Selenium?
Selenide – prosto, szybko, intuicyjnie
Dziś chciałem Wam opowiedzieć o Selenide, jego główne plusy to:
- przyśpieszy powstawanie testów (przez co koszt wytworzenia testów spada) – PM i biznes będą zachwyceni
- jest bardzo prosty w użytkowaniu
- posiada wiele integracji z narzędziami do raportowania
- proces nauki jet o wiele szybszy, pozwala praktycznie natychmiast zacząć automatyzacje nie przejmując się wieloma aspektami, o które musimy dbać w Selenium
- stabilność testów (koniec z niestabilnymi testami!)
Jak napisać pierwszy test w Selenide?
Mam nadzieje, że czytając to pierwsze próby z programowaniem w Javie, masz już za sobą. Miałeś już styczność z pisaniem kodu i konfiguracją projektu.
W razie gdybyś dopiero zaczynał przygodę z programowaniem i automatyzacją poniżej znajdziesz listę niezbędnych rzeczy, które musisz posiadać na swoim komputerze:
Tworzenie projektu
Aby stworzyć nasz projekt, potrzebujemy uruchomić nasze IDE (w tym przypadku będzie to intellij) i kliknąć przycisk New Project.
Dodanie zależności
Pierwszym krokiem w nowym naszym nowym projekcie, jaki musimy wykonać to dodanie zależności. Odszukaj w projekcie plik pom.xml i dodaj następujące zależności.
W dzisiejszym przykładzie dodamy Selenide oraz TestNG.
Selendie + TestNG
<dependencies>
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>5.18.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.3.0</version>
<scope>test</scope>
</dependency>
</dependencies>
Po dodaniu zależności trzeba jeszcze wybrać opcje reload project.
Stworzenie klasy z testem
Pierwszy test
Nasz test zaczynamy od dodania anotacji @Test. Następnie tworzymy metodę testową. Teraz zostanie nam napisanie tylko samego testu.
Otwarcie przeglądarki zrobimy przy użyciu metody open. Jej zadanie to otworzyć przeglądarkę i udanie się pod poddany adres URL. Linijka 12.
Linia 13 odpowiada za wybranie elementu (input), przy pomocy css selektora. Wpisujemy do niego wartość „Kraków” następnie metoda pressEnter() symuluje naciśniecie entera.
W ten sposób zostajemy przeniesieni do rezultatów wyszukiwania.
Linia 14 to wyszukanie elementu po danym tekście. W tym przypadku jest to tytuł strony. Budując taki element w selendie możemy na nim również wykonywać operacje. W naszym teście wystarczy, że na niego klikniemy. Do tej akcji używamy metody click().
Linia 15 to asercja w naszym teście. Sprawdzamy, czy element, który jest nawigacją posiada w sobie taki tekst jak „Nasze miasto”.
Aby uruchomić nasz test, wystarczy kliknąć zielony trójkąt znajdujący się w linii 11.
Informacja zwrotna po teście
Po uruchomieniu test w intellij na dole ekranu powinien się nam pojawić testNg runner wraz ze statusem naszych testów.
W przypadku kiedy test przeszedł zostaniemy o tym poinformowani zielonym ptaszkiem przy nazwie testu oraz informacją na temat naszego test suite.
W przypadku niepowodzenia testu otrzymujemy przy nazwie testu krzyżyk na żółtym tle oraz informację o asercji, która się nie powiodła, oraz powód jej niepowodzenia.
Czy uda się 10 minut?
Jeśli dopiero zaczynasz z automatyzacją testów i programowaniem polecam zacząć od bardzo prostego testu (jak na przykładzie), który zweryfikuje naprawdę prostą rzecz.
Start z Selenide daje nam tę przewagę, że za pomocą kilku linii kodu możemy stworzyć już pełnoprawny test. Co raz więcej firm też dostrzega jego intuicyjność i zaczyna wypierać z niektórych projektów Selenium.
Czy zajmie to 10 minut? Myślę, że warto spróbować podjąć się tego wyzwania.
Oczywiście Selenide zawiera dużo więcej możliwości, (o tym między innymi następne wpisy) jednak celem tego wpisu było postawienie pierwszego małego kroku w celu sprawienia, żeby testowanie było sprawniejsze i przyjemniejsze i szybsze.
Skąd pobrać kod?
Przygotowałem również repozytorium na GitHub’ie gdzie możesz pobrać repozytorium z kodem znajdującym się w tym wpisie. Możesz go pobrać z https://github.com/Project-Quality/Selenide-Project
Aby pobrać konkretnie tą wersję w opcji tag należy wybrać opcję 1.0
Photo by James Harrison on Unsplash