Plan kursu
Kurs Cypress od podstaw został opublikowany na platformie edukacyjnej Udemy i jest podzielony na kilka modułów.
Instalacja narzędzi i programów
Kurs rozpoczniemy od instalacji niezbędnych narzędzi i programów. Zainstalujemy środowisko nodejs, pozwalające nam na uruchomienie skryptów automatycznych, Visual Studio Code czyli edytor kodu, w którym będziemy pracować oraz różne rozszerzenia do niego, które znacznie usprawnią nam pracę.
Podstawy języka JavaScript
W kolejnym module będziemy musieli oswoić się z podstawami języka Javascript. Bo to właśnie w nim będziemy implementować nasze testy automatyczne. Nauczymy się deklarować zmienne, poznamy różne typy danych, dowiemy się co to są instrukcję warunkowe i wreszcie dojdziemy do pętli takich jak for, while i dowhile. Pojawią się też bardziej zaawansowane zagadnienia ale niezwykle istotne przy implementacji testów. Będą to funkcję, których musimy się nauczyć. Dowiemy się jak je deklarować (bo są różne sposoby), jak je wywoływać i jak do nich można przekazywać różnego typu parametry. Dalej przyjdzie pora na tablice i różne metody jakie możemy wykonywać na nich. Na końcu poruszymy klasy i dziedziczenie. Nie musisz posiadać wiedzy z zakresu JavaScript. W ramach tego kursu wszystkiego się nauczymy.
Instalacja Cypress i konfiguracja projektu
Gdy poznamy już solidne podstawy Javascript to będziemy mogli rozpocząć przygodę z Cypressem. A zrobimy to zaczynając od stworzenia projektu, ustawienia podstawowej konfiguracji cypressa i omówienia struktury folderów i plików.
Interakcje na elementach
W module piątym będziemy uczyć się wykonywania interakcji z różnymi elementami na stronie. Dowiemy się jak takie elementy możemy pobierać, jak zaprogramować test aby wykonywały na nich np. akcję kliknięcia czy też wpisania odpowiedniego tekstu w pole wyszukiwania. Nauczymy się stosować asercję, które są kluczowe w testach automatycznych bo to właśnie dzięki nim możemy zweryfikować czy po wykonaniu danej czynności pojawił się oczekiwany rezultat. Powiemy sobie jak obsługiwać checkboxy, listy rozwijane oraz alerty.
Page Object Model
Dalej przejdziemy do nauki wzorca Page Object Model, który znacznie ułatwi nam automatyzacją testów. Wszystkie lokalizatory oraz metody będziemy mieli odseparowane od reszty plików. Będziemy je przechowywać w tak zwanych klasach. Pozwoli nam to w lepszym zarządzaniu lokalizatorami i metodami. Gdy tylko jakiś selektor się zmieni np. input od logowania to zmiany dokonamy w jednym miejscu zamiast we wszystkich testach, które używają tego lokalizatora. Zahaczymy także w tym module o Custom Commands i zobaczymy z czym to się je.
Automatyzacja API
I tak małymi krokami dojdziemy do modułu, który będzie poświęcony w całości automatyzacji API. Na bazie praktycznych przykładów otwartych API nauczymy się wykorzystywać metodę Intercept pozwalającą nam nasłuchiwać dowolne requesty i wykonywać na nich asercję. Zweryfikujemy między innymi czy kod odpowiedzi z wykonanego zapytania jest taki jaki będziemy oczekiwać, czy zapytanie zwróciło nam odpowiednie zasoby jakie chcieliśmy i wiele więcej. Nauczymy się także mockowania odpowiedzi. Jest to niezwykle przydatne gdy chcemy sprawdzić jak nasza aplikacja zachowa się przez nieoczekiwaną obsługę danej odpowiedzi. Do każdego modułu dołączyłem pliki z lekcji. Więc w razie potrzeby możesz w każdej chwili je pobrać i zweryfikować czy wszystko pokrywa się z Twoim kodem.
Zaawansowane zagadnienia
Wreszcie przejdziemy do ostatniego i zarazem najbardziej wymagającego modułu, w którym poruszymy zaawansowane zagadnienia Cypressa. Dowiemy się jak wykonywać testy na różnych przeglądarkach internetowych, instalować i konfigurować różne pluginy. Nawet zainstalujemy plugin pozwalający zmienić motyw naszego cypressa na ciemny bądź w kolorystyce halloweenowej a także plugin cypress audit. Dzięki cypress auditbędziemy mogli przeprowadzić audyt naszej strony. Czyli zweryfikować jak wygląda obecna sytuacja pod kątem SEO, prędkości wczytywania się strony itp.
Nauczymy się uruchamiać nasze testy na różnych środowiskach, które na początku sobie stworzymy. Jest to niezwykle przydatne jeśli nasza aplikacja ma kilka środowisk np. produkcyjne i testowe. W wyniku tego mogą pojawić się pewne różnicy pomiędzy środowiskami takie jak choćby inne dane logowania do aplikacji. I my w tym module zajmiemy się obsługą takich przypadków. Dalej zapoznamy się z reporterami, jakie możemy podłączyć do Cypressa. Dwa z nich zainstalujemy. Będzie to jUnit oraz mochawesome, prezentująca nam raporty z testów w przystępnej dla oka formie.
Pamiętałem także o wyjaśnieniu w jaki sposób możemy poruszać się po Shadow DOM. Stworzymy i zalogujemy się na konto w cypressie i dzięki temu otrzymamy dostęp do Dashboardu Cypress, który dokładnie sobie omówimy. Cypress dodatkowo pozwala na przeprowadzanie testów regresji wizualnej. Powiemy sobie co to jest takiego i uruchomimy wizualne testy regresji z poziomu Cypressa przy pomocy platformy Percy.
Dalej zajmiemy się konfiguracją Proxy i uruchomimy nasze testy na Dockerze. Przygotujemy sobie odpowiedni plik Dockerfile, w którym określimy obraz z jakiego ma korzystać nasz Docker a następnie zbudujemy sobie dockerFil’a i zobaczymy jak wygląda uruchamianie naszych testów w dockerze 🙂 I ostatnia lekcja będzie poświęcona ponawianiu testów. Tzn. będziemy mieli możliwość określenia, że w przypadku niepowodzenia egzekucji danego testu nasz skrypt będzie mógł go ponowić odpowiednią ilość razy jaką sobie zadeklarujemy.
Jeśli przedstawiona agenda kursu brzmi ciekawie to serdecznie zapraszam Cię na wspólną przygodę, w której nauczymy się podstaw Cypressa i zbudujemy framework do automatyzacji.