Poznaj najważniejsze zalety Playwright Test i przedyskutuj je w swoim zespole
type
Post
thumbnail
updatedAt
Mar 8, 2024 07:49 AM
category
👨🏫 Porady
W tym wpisie przybliżam główne zalety Playwright Test i miejsca gdzie można się o nich dowiedzieć więcej.
Filozofia Playwright Test
Playwright Test ma w sobie bardzo dużo narzędzi i opcji, dzięki temu nie musisz dbać o setki integracji i ustawień. Możesz korzystać z bogatego zasobu funkcji, jednocześnie skupiając się na najważniejszym - pisaniu testów i dbaniu o jakość aplikacji😉
W odpowiedzi na prośby czytelników dodaliśmy ikonkę ⭐ przy funkcjach Playwright, które nie występują w głównej bibliotece Cypress (darmowej wersji).
Warto jednak zauważyć, że wiele z tych funkcji można uzyskać w Cypress przy pomocy zewnętrznych pluginów (utrzymywanych przez niezależnych dostawców).
Za pomocą ⭐ podkreślamy elementy wbudowane w pobieraną bibliotekę do natychmiastowego użycia.
Lokalnie ustawienie workers dzielą nasze testy na wiele wątków (ich liczba zależy od liczby logicznych wątków posiadanego procesora)
Na serwerze Ciągłej integracji ustawienie shards rozprasza testy pomiędzy maszyny
Ustawienie fullyParallelpozwala określić czy nasze testy mają zostać podzielone w zakresie plików czy też jako poszczególne testy (wtedy na różne workery trafią testy z tego samego pliku)
Kontrola zrównoleglenia poprzez Projectslub Serial Mode - możemy dla danych testów zastrzec, aby nie były zrównoleglane
Testy są równolegle wykonywane zarówno dla testów jak i różnych przeglądarek (a właściwie emulacji)
Dostępne w asercjach, dzięki czemu działa mechanizm sprawdzania poprawności asercji
Dostępne w lokatorach, Playwright ponawia automatycznie próbę pobrania elementu gdy chcemy wykonać akcję
Możemy sterować czasem wykonania ponowienia sprawdzenia asercji poprzez expect.poll
Można ponawiać testy także za pomocą opcji retries
Timeouts dla testów, akcji lub asercji możemy ustawić globalnie lub niezależnie dla grupy lub indywidualnego testu (a nawet pojedynczej akcji lub asercji)
Za pomocą tradycyjnych screenshots, wideo i obserwacji przeglądarki uruchamianej w czasie testów
Za pomocą Trace Viewer narzędzia interaktywnego do śledzenia historii wykonania testu, ze screenshotami przed, w czasie i po akcji, pełnym ruchem sieciowym, kodem testu, artefaktami (screenshots) oraz wszystkimi akcjami narzędzia Playwright wraz z informacjami związanymi z konfiguracją - 🔗https://playwright.dev/docs/trace-viewer
Jedno miejsce do ustawienia najważniejszych funkcji projektu z Playwright
Możliwość, tworzenia, rozszerzania i nadpisywania wielu konfiguracji
Ustawienie timeouts, lokalizacji testów, adresu strony, własności przeglądarki, zależności pomiędzy grupami testów, globalnych ustawień przed i po testach, raportów, uruchomienia testowanej aplikacji etc
Jeden standard, który może być w pełni rozumiany przez zespół i przenoszony do kolejnych projektów testowych
W konfiguracji możemy definiować dowolną liczbę Projects
Mogą one wskazywać własności poszczególnych przeglądarek (emulacja) ich ustawienia, wyświetlany obszar, geolokalizacja, sieć czy też indywidualne ustawienia
Projects mogą zależeć od siebie a ich artefakty mogą być przekazywane, na przykład sesja wytworzona w jednym Project może być użyta w innych
Mogą posiadać indywidualne ustawienia dotyczące Timeouts czy Retries
Możemy tworzyć kod niezbędny dla testów na bardzo różnych poziomach: przed każdym testem, raz przed grupą testów, i tak samo po testach - dzięki temu testy mogą zawierać kod wyłącznie niezbędny do testu
Możemy wstrzykiwać gotowe przygotowane obiekty, które mogą posiadać własny kod inicjalizacyjny i sprzątający
⭐ Możemy grupować testy i nadawać grupom różne własności związane ze zrównolegleniem, powtarzaniem testów bądź opóźnieniem, czy innymi indywidualnymi ustawieniami
Wstrzykiwanie przechowywanej sesji do testów poprzez Projects lub bezpośrednio w testach
Dodatkowe
⭐ Generowanie testów za pomocą nagrywanych akcji z możliwością nagrania asercji wbudowane w IDE
Proste wstrzykiwanie JS w celu uzyskania dostępu do niestandardowych elementów strony
Dowolna izolacja kodu na poziomie kontekstu (z cookies np. sesją) lub nowej strony (czysta przeglądarka) w obrębie testu lub dowolnej grupy
Widoczność czasu wykonania akcji w kodzie podczas uruchomienia testu z wtyczką VSCode
Możliwość wielokrotnego uruchomienia pojedynczego testu lub grupy z linii poleceń
Łatwa integracja z zewnętrznymi bibliotekami JS/TS jak Faker (generowanie danych losowych), Winston (logger), Dotenv (zarządzanie danymi wrażliwymi)
Niektóre z tych zalet są dostępne tylko dla Playwright Test, z kolei inne znajdziemy w wielu znanych frameworkach. Warto eksplorować i sprawdzać dane funkcje, aby usprawniać swoje testy😉
Playwright Test jest dostępny tylko dla JavaScript i TypeScript (w odróżnieniu od biblioteki Playwright)
Podsumowanie
Playwright Test ma wiele ciekawych funkcji a wymieniłem tylko najważniejsze. Można jeszcze wiele się dowiedzieć dlatego warto śledzić nasze wpisy i kolejne releases: 🔗https://playwright.dev/docs/release-notes
💡
Jeśli planujesz wprowadzić Playwright do swojego projektu lub chcesz poszerzyć swoje kompetencje z tego frameworka, to zapoznaj się z następującymi materiałami: