Wstęp
Kim jesteśmy?
Jak wspieramy i dzielimy się wiedzą o Playwright?
- 👉 O naszym wsparciu społeczności testerskiej w temacie Playwright poczytasz na Playwright Contribution
- 👉 Jesteśmy autorami pierwszego polskiego bloga w całości o Playwright – playwright.info
- 👉 Aktywnie działamy w głównym repozytorium Playwright – zgłaszając błędy, usprawnienia, wrzucając poprawki i testując nowe wersje – microsoft / playwright
- 👉 Nasz darmowy, ponad 8 godzinny darmowy kurs na YouTube o automatyzacji z Playwright – Praktyczne wprowadzenie do testów automatycznych z Playwright
- 👉 Nasz kompleksowy, ponad 70 godzinny Program o automatyzacji z Playwright – Program Testy Automatyczne z Playwright
Prelekcja: 7 Grzechów Playwright – Pułapki nowoczesnej automatyzacji
Uwydatnimy różne grzechy.
Dlaczego?
Aby skłonić do refleksji.
Aby wyciągnąć wnioski.
Uważamy, że sprzyja to głębszemu zastanowieniu się nad własnymi działaniami. Ten proces refleksji umożliwia nam spojrzenie na własne aktywności, podejścia i praktyki z większa krytyką.
Może być to impulsem do poprawy i dalszego rozwoju.
Dodatkowo, uwydatnianie grzechów w celu wyciągnięcia wniosków może pozwolić na zrozumienie mechanizmów, które prowadzą do popełnianych błędów oraz analizę możliwych ścieżek. Możemy bardziej świadomie podejść do podejmowania naszych przyszłych decyzji 😉
W efekcie, uwydatnianie grzechów przyczynia się do doskonalenie umiejętności programistycznych i ciągłe dążenie do lepszej jakości 😉
Prezentacja
Prezentacje możesz pobrać klikając poniższy obrazek:
Lub za pomocą linka: Prezentacja
A teraz zobaczmy jakie grzechy ciążą nad twórcami i użytkownikami 😉
Pycha (Superbia)
Szybko, dużo, prosto! Czy na pewno?
- Playwright jest świetny, ale rozpoczęcie przygody może wymagać pracy
Playwright jest rozbudowanym narzędziem do automatyzacji testów, które oferuje obsługę wielu przeglądarek, w tym Chrome, Firefox i Safari. Jego bogata funkcjonalność, chociaż potężna, może być wyzwaniem. Podczas pisania testów pojawiają się różne koncepty jak fixtures, zrównoleglenie, asynchroniczność i wiele innych.
- Proste nagrane testy? Mogą generować sporo problemów
Nagrane testy mogą znacznie przyspieszyć pracę i idealnie nadają się na szybki start lub bardzo proste projekty. Jeśli chcemy je wykorzystać w bardziej zaawansowanych projektach, to musimy wykonać kosztowny refactor.
- W dokumentacji tylko proste przykłady (i to wyszukiwanie pomiędzy kontekstami)
Dokumentacja Playwright zawiera podstawowe przykłady, które pomagają w szybkim starcie, ale bardziej zaawansowane przypadki użycia mogą wymagać głębszego zrozumienia dokumentacji.
Czego nas uczy? 👨🏫
Playwright jest potężny, jednak trzeba podejść z pokorą.
Poznając podstawy możemy już zacząć automatyzować, a tym samym dostarczać wartość.
Jednak Playwright ma bardzo wiele funkcji – dopiero poznanie i zastosowanie ich pozwala na tworzenie czytelnych i utrzymywalnych testów. Testów, które przynoszą dużą wartość, a koszt utrzymania jest niski.
Niektóre z nich to:
- Zależności w projektach, suite, testach
- Mockowanie, GUI wsparte API, websockets
- CI/CD – Cachowanie, sharding i zarządzanie projektami
- Często adepci Playwright inwestują czas w rozwiązania, gdy jest totalnie inna droga.
Przykład: obsługa bardzo dużej liczby scenariuszy z unikalnymi danymi, gdy wystarczą proste testy z zamockowanymi wartościami
Chciwość (Avaritia)
Czy grupa zapaleńców może przejąć władzę?
- Microsoft to obecnie najwyżej wyceniana korporacja Q1 2024
Microsoft zajmuje obecnie pozycję najwyżej wycenionej korporacji według danych z Q1 2024. Źródło: CompaniesMarketCap
- Microsoft sponsoruje ekosystem Playwright
Framework Playwright, TypeScript oraz VSCode są obecnie rozwijane przez zespoły pracujące dla Microsoft. Obecnie są to narzędzia w pełni bezpłatne. Również twórcy Playwright na konferencji Let’s talk Playwright with the Playwright team zapewniali, że Playwright będzie zawsze darmowy.
- Niewielki zespół dla najczęściej pobieranego narzędzia
Mimo popularności narzędzia, Microsoft utrzymuje niewielki zespół odpowiedzialny za jego rozwój.
- Wraz ze skalą coraz trudniejsze staje się utrzymanie
Z rosnącą popularnością narzędzia, utrzymanie wysokiej jakości i wydajności staje się coraz trudniejsze. Szczególnie jeśli popatrzymy przez pryzmat niewielkiego zespołu.
Czego nas uczy? 👨🏫
Chcielibyśmy mieć wszystko (funkcjonalności), jednak mamy ograniczone zasoby (czas i ludzi).
- Wybierajmy najpopularniejszy stos, który ma największe wsparcie
Priorytetem powinno być wybieranie stosu narzędziowego, który cieszy się największym wsparciem społeczności. To wpływa na szybkość znajdowania błędów i rozwijania nowych funkcji.
- Nowe funkcje nie będą wchodziły tak szybko – trzeba być cierpliwym
W przypadku wyboru popularnego stosu, wprowadzanie nowych funkcji może wymagać cierpliwości, ponieważ proces ten może być bardziej umiarkowany.
- Czasem trzeba inwestować w swoje implementacje
W niektórych przypadkach może być konieczne inwestowanie w własne implementacje, zwłaszcza jeśli istnieje potrzeba dostosowania narzędzi do specyficznych wymagań projektu.
- Pomagajmy w rozwoju narzędzia, z którego korzystamy
Takie wsparcie pozwoli nam aktywnie uczestniczyć w rozwoju i przyśpieszyć wprowadzanie nowych funkcji.
- Obserwujmy rynek
Dzięki temu będziemy mogli wcześniej reagować na ewentualne zawirowania lub niepokojące sygnały 😉
Nieumiarkowanie (Gula)
W Playwright możemy bardzo łatwo tworzyć testy.
- Szybko okaże się, że bez wzorców projektowych będziemy mieli nieutrzymywane spaghetti code albo przerośnięte abstrakcje bez biznesowego uzasadnienia.
- Różne koncepty połączone razem mogą tworzyć bardzo kompleksowe struktury, np. połączenie fixtures, projektów zależnych i hooks
Czego nas uczy? 👨🏫
- Bądźmy skromni w tworzeniu struktur i konfiguracji – czasem prościej i czytelniej daje lepszą wartość, niż mega skomplikowane struktury.
- Pamiętajmy nie tylko o sobie, ale innych/przyszłych użytkownikach frameworka. Często w projekcie osoby mają bardzo zróżnicowaną wiedzę na temat programowania – podciągnięcie ich wiedzy do ekspera/seniora może trochę zająć.
- Czytaj swój kod i testy tak jak książkę dla dzieci, a nie wiersz po psychodelikach.
Lenistwo (Acedia)
Implementacja nowych funkcjonalności jest ultra ciekawym zadaniem i wyzwaniem. Nowe funkcje są też najbardziej pożądane przez użytkowników danego narzędzia 😉
Jednak wraz ze wzrostem poziomu skomplikowania projektu, do ultra ciekawych zadań dochodzą też te mniej ciekawsze – np. aktualizacji i utrzymanie dokumentacji. Bez niej ciężko odnaleźć się w nowych funkcjach i poznać sposoby prawidłowego korzystania z możliwości, jakie daje dane narzędzie.
- Dokumentacja wymaga zaangażowania nie tylko twórców, np:
- brak wyróżnionych zwracanych wartości z funkcji i metod
- chaos z wyszukiwaniem danego tematu np. Route
- brak dedykowanych miejsc poświęconych pojedynczemu zagadnieniu
A jak wygląda lenistwo po stronie użytkowników?
Często, gdy widzimy jakiś błąd, to nie zgłaszamy go twórcom. Mamy nadzieję, że zgłosi go ktoś inny…
A takie zgłoszenie, a następnie poprawka mogłaby poprawić komfort pracy i zadowolenie całej społeczności.
Czego nas uczy? 👨🏫
- Proaktywnie wspieraj framework którego używasz.
- Zgłaszaj bugi, pytaj, dziel się wiedzą.
- Staraj się zadbać nie tylko o siebie, ale też o narzędzie, z którego korzystasz.
Gniew (Ira)
Podczas korzystania z danego narzędzia może pojawić się gniew u użytkowników.
Źródłem tych emocji może być brak niektórych ważnych funkcji, które okażą się być dla nas kluczowe.
Przykładowo, w Playwright obecnie nie ma następujących funkcji lub są w ograniczonym stopniu:
- Mockowanie websocket: brak
- Lepsze soft asercje dla projektów zależnych: brak
- BDD: w ograniczonym stopniu
Dlatego warto pamiętać:
- Playwright ma wiele słabych punktów, jak każdy framework
- Gdy chcemy realizować kompleksowe działania, natrafiamy na brak takich możliwości
- Wiele osób z tym samym problemem czeka od lat na poprawki lub nowe funkcje
Czego nas uczy? 👨🏫
- Wiele osób z tym samym problemem czeka od lat na poprawki lub nowe funkcje – i to jest przypadłość wszystkich narzędzi.
- Zgłaszaj bugi, pytaj, dziel się wiedzą i uczestnicz w dyskusjach o frameworku.
- Keep calm, szukaj nowych rozwiązań i pomagaj w rozwoju narzędzia
Zazdrość (Invidia)
Zazdrość pojawia się u użytkowników.
Mam do przetestowania… Bierz Playwright!
Czasem możesz coś takiego usłyszeć. Może mieć to podłoże zazdrości.
Czemu miałbyś wybrać inne narzędzie gdy Playwright jest najlepszy?
Naszym zdaniem, nie jest to dobre podejście. Najważniejsze jest spełnienie określonego celu, a nie samo narzędzie.
- Playwright posiada wiele ograniczeń:
- Testy starszych wersji przeglądarek
- Testy na urządzeniach mobilnych.
- Testy wydajności.
- Czekanie na niektóre nowe funkcjonalności może zająć lata (np. BDD)
Czego nas uczy? 👨🏫
Ostrożnie i krytycznie podchodź do porad, przy których nie zostały odkryte Twoje potrzeby.
- Playwright nie nadaje się do wszystkich typów testów i nie spełni pewnych potrzeb.
- Chłodno oceniaj możliwości narzędzia i pamiętaj, że spełnienie Twoich potrzeb jest najważniejsze.
Pożądanie (Luxuria)
- Twórcy deklarują, że słuchają społeczności, ale często otrzymujemy milczenie.
- Nie ma oficjalnej roadmapy, a decyzje zapadają w kuluarach i nie znamy ich motywacji.
Czego nas uczy? 👨🏫
- Poznaj filozofię danego narzędzia i praktyki sugerowane przez twórców – zobacz czy spełniają Twoje potrzeby i czy nie potrzebujesz czegoś innego.
- Uważaj na techniczne zbieractwo! Gdy pożądasz zbyt wiele, to nie będziesz w stanie tym sensownie zarządzać. Patrz krytycznie na to, czego potrzebujesz w danej chwili 😉
- Bądź transparentny ze swoimi planami, aby osoby korzystające z Twoich rozwiązań czuły się pewnie
Podsumowanie
Masz obawę o przyszłość?
Przez monopol, niewielki zespół, duży produkt o ogromnej popularności?
Konkurencja nie śpi i będzie chciała zagarnąć trochę rynku dla siebie 😉
A wiele narzędzi, to wiele możliwości.
Zobacz przykład – Cypress zapożyczył sobie otwarty kod, który udostępnili twórcy Playwright, aby było możliwe testowanie przeglądarek opartych o WebKit (Launching Browsers WebKit (Experimental)) 😉
Ty również możesz podpatrywać różne rozwiązania – w innych projektach, w innych narzędziach. Wybierz to co jest Ci najbardziej obecnie potrzebne. Pamiętaj o swoim celu i dobieraj do niego adekwatne narzędzia 🙂
- Bądź otwarty i dociekliwy
Playwright, jako framework do testów, oferuje różnorodne formy i wzorce. Bądź otwarty na różnorodność możliwości i poznawaj nowe funkcje tego narzędzia. Jest wiele sposobów na osiągnięcie danego celu 🙂
- Bądź czujny
Playwright, podobnie jak każde narzędzie, ma swoje mocne i słabe strony. Jeśli napotkasz problemy, pamiętaj, że nie zawsze są one wynikiem Twojego błędu. Czasem są związane z samym frameworkiem, jego ograniczeniami i długiem technicznym. Bądź czujny i zawsze gotów na rozwiązywanie problemów ;).
- Twórz kod prosty i zrozumiały
Używaj jak najwięcej natywnych funkcji Playwright. Dzięki temu Twój kod będzie czytelniejszy i łatwiejszy do zrozumienia. Przy wykorzystaniu funkcji narzędzia możemy skoncentrować się bardziej na samych testach i przypadkach.
- Partycypuj w rozwoju frameworka Playwright
Twoje zaangażowanie w rozwój Playwright ma realny wpływ na społeczność. Zgłaszaj problemy, przesyłaj propozycje i bierz udział w procesie tworzenia. Dzięki temu framework będzie jeszcze lepszym narzędziem, które spełni różnorodne potrzeby zespołów..
- Przekuj gniew w ciekawość
Kiedy napotkasz trudności, nie wpadaj w złość. Zamiast tego, szukaj rozwiązań, dziel się swoim doświadczeniem z innymi i bądź zdeterminowany w dążeniu do osiągnięcia celu.
- Inspiruj się
Śledź postępy i trendy w świecie testów i narzędzi. Podpatruj jak inni rozwiązują różnorodne problemy i inspiruj się.
- Testuj i daj testować innym
Bądź aktywny w testowaniu własnego kodu, jednocześnie zachęcając innych do przeglądania i testowania Twojego kodu. Kwestionuj autorytety, w tym swoje własne, zadając pytania i poszukując najlepszych rozwiązań dostosowanych do konkretnego przypadku.
Linki
Poniżej znajdziesz rozszerzenie różnych materiałów:
- Różne smaki Playwright – o Playwright, Playwright Test, różnych językach i podejściach
- Konferencja o Playwright z twórcami – Let’s talk Playwright with the Playwright team
- Aktualna wycena firmy Microsoft – CompaniesMarketCap
- Pierwszy polski blog o Playwright – playwright.info
- Co nowego w Playwright 1.42 – praktyczne przykłady!
- Playwright popularniejszy niż Cypress – Czy to znaczy, że Cypress umiera i już jedynym wyborem jest Playwright?