👨‍🏫 Porady

Kurs Playwright - zdobądź uniwersalną wiedzę

Language
date
Oct 5, 2023
slug
kurs-playwright
author
status
Public
tags
Playwright
Porady
Automatyzacja
Architektura
Kurs
summary
Jak dobrze się uczyć automatyzacji testów? Na co zwrócić uwagę przy wyborze kursu Playwright? Czym jest i co skrywa nasz Program nauki?
type
Post
thumbnail
kurs-playwright.jpg
updatedAt
Oct 25, 2023 02:09 PM
category
👨‍🏫 Porady
Wielu testerów poszukuje rzetelnych źródeł wiedzy o automatyzacji, szczególnie łączących postawy i rozszerzone zagadnienia.
Dlatego chciałem Ci dzisiaj przybliżyć anatomię Programu nauki automatyzacji, nad którym mam przyjemność pracować.
Jednocześnie pragnę Ciebie zainspirować do krytycznej oceny źródeł wiedzy pod względem opisanych poniżej wartości.

Materiały które prześwietlimy

W tym poście zaprezentuję najciekawsze rzeczy jakie skrywa kurs o nauce Playwright, nad którym pracujemy w ramach inicjatywy jaktestowac.pl:
notion image
💡
Wszelkie informacje odnośnie Programu znajdziesz tutaj: 🔗https://jaktestowac.pl/playwright

Obecny status materiałów w sieci i nasza odpowiedź

Na rynku dostępnych jest wiele kursów dotyczących narzędzia Playwright. Jednak większość z nich skupia się na prezentowaniu podstawowych funkcji lub pojedynczych konceptów.
Chociaż te materiały są doskonałe dla osób chcących szybko zdobyć wiedzę na temat konkretnego zagadnienia, to często brakuje kursów, które zagłębiają się w bardziej zaawansowane aspekty tego narzędzia.
notion image
Wspomniane podstawowe koncepty są prezentowane na bardzo elementarnych przykładach, co jest idealne do nadrobienia braków wiedzy w konkretnym obszarze. Stanowią one także ciekawe uzupełnienie dokumentacji, dzięki prezentacji wideo w formie live coding.
Brakuje jednak materiałów o:
Budowie pełnowartościowego frameworka z wykorzystaniem Playwright.
Rozwiązywaniu wyzwań związanych z rozbudowaną strukturą testów.
Podejściach do bardziej zaawansowanych koncepcji architektury i różnych rozwiązań.
Łączeniu kodu z najlepszymi praktykami, takimi jak "decision log" czy "coding standards".
Testerzy często czują się zagubieni w kontekście rozpoczęcia pracy nad takim frameworkiem. Brakuje im również wiedzy na temat efektywnego wyboru i użycia zestawu narzędzi (nie tylko Playwright), aby testy były niezawodne i łatwe w utrzymaniu.
Typowe pytanie na Grupie Testowania Oprogramowania o rozwój po podstawach
Typowe pytanie na Grupie Testowania Oprogramowania o rozwój po podstawach
Dlatego stworzyliśmy Program, który skupia się na budowie frameworka z wykorzystaniem Playwright. W ramach tej serii kursów angażujemy testerów w proces tworzenia zaawansowanego frameworka, jednocześnie dostarczając materiały umożliwiające uzupełnienie wiedzy z podstaw Playwright, JavaScript, TypeScript, CI/CD i API.
 
 

Co wyróżnia kurs o Playwright nad którym pracujemy?

 
Przede wszystkim pokazanie drogi w jaki sposób framework powstaje, jakie są motywacje do podejmowanych decyzji i z jakimi problemami musimy się liczyć.
 
Budujemy w nim, wspólnie z kursantem, pełnoskalowe rozwiązanie czyli takie, w którym testy łączą się z zagadnieniami bezpieczeństwa czy modularności.
 
  • Zadajemy pytania.
  • Podejmujemy decyzje.
  • Rozważamy ich wpływ na framework i testy.
 
Przechodzimy razem przez refaktoryzacje i implementacje zoptymalizowanych na daną chwilę rozwiązań.
Przykład omówienia architektury zarządzania danymi wrażliwymi we frameworku
Przykład omówienia architektury zarządzania danymi wrażliwymi we frameworku
 
Program Playwright to mnóstwo unikalnych cech:
  • 📱 praca z dedykowaną aplikacją do testów i symulowanymi wymaganiami
  • 🧱 przygotowanie struktury, która będzie gotowa na testy rozbudowanego serwisu
  • 🛠️ integracji z wieloma narzędziami i bibliotekami do statycznej analizy kodu
  • 📑 pokazanie strategii opieki nad długiem technicznym, decyzjami projektowymi czy dokumentacją frameworka
  • 🤷 stosowanie różnych podejść w trakcie rozwijania testów (np. testy smoke, integracyjne, end to end)
  • 🧑‍🔬️ wykorzystanie praktyczne wachlarza narzędzi Playwright podczas analizy testów (UI mode, record from here, Trace Viewer, debug)
  • 🔁 możliwość użycia projektu jako wzorca do rozpoczęcia pracy nad komercyjnym rozwiązaniem, oszczędzając całe dni pracy zespołu nad poszukiwaniem, analizą i integracją rozwiązań
  • 🏗️ graficzne prezentowanie architektury rozwiązań i omawianie jej elementów
  • 🔒 zarządzanie danymi wrażliwymi w projekcie, z pełnym procesem
  • 📃 zarządzanie skryptami i zakresami uruchamianych testów
  • 📝 zadania dla kursanta oraz pełne rozwiązania, wraz z kodem i omówieniem podejść
  • 🧑‍💻️ poznanie podstaw API i jak możemy wykorzystać je w wsparciu testów GUI
 
W trakcie pracy nad frameworkiem wszystkie te tematy przeplatają się pomiędzy sobą, oddając tym samym zbliżony do komercyjnego ekosystem pracy.
Przykład z lekcji z omówienia wysokopoziomowej architektury rozwiazania
Przykład z lekcji z omówienia wysokopoziomowej architektury rozwiazania
Zaznaczę, że mamy do czynienia (z pozoru) prostą aplikacją do testów, a same testy tworzymy z umiarem aby móc w założonym tempie postępować z poznawaniem kolejnych tematów.
Z drugiej strony staramy się na maksa pokazać jak wygląda realne użycie Playwright i dodatkowych narzędzi. Dzięki temu kursant zyskuje swobodę w poruszaniu się po rozbudowanym ekosystemie aplikacji, praktyk i wzorców.

Aplikacja do testów GAD

 
GAD to skrót od GUI API Demo. Aplikacja ta ma w sobie te wszystkie cechy😉
Wyewoluowała ona z aplikacji RAD, którą samodzielnie zaprojektowaliśmy do testów REST API.
notion image
Używamy GAD jako naszą główną aplikację do weryfikacji wymagań i budowy opartych o nie testów.
 
Ta z pozoru prosta i superlekka aplikacja, to tak naprawdę niesamowity sprzymierzeniec w nauce automatyzacji nie tylko z Playwright!
 
notion image
 
GAD jest aplikacją, która cały czas ewoluuje. Ma zaszyte mnóstwo funkcjonalności (np. reset bazy danych, predefiniowane dane testowe), które pomagają tworzyć różne scenariusze do bardziej zaawansowanych testów.
notion image
Najpierw jednak chciałem zwrócić uwagę na jej prostotę. Dzięki temu tester może poznawać koncepty GUI czy API od bardzo elementarnych przypadków. Gdy już opanuje ten poziom czeka go wiele ciekawych wyzwań, gdyż zaszyliśmy w niej sporo bugów, trudnych do testowania elementów i narzędzi (dokumentacja API Swagger z autoryzacją).
notion image
Aplikacja jest przy tym ultra lekka i łatwa w aktualizacji. Dzięki temu możliwy jest jej deployment do chmurowych serwisów w zaledwie kilka minut! Daje to świetne możliwości pokazania testów na różnych środowiskach, wpięcia testów do procesu Ciągłej Integracji, czy obserwowania błędów, które lokalnie często nie wystąpią.
 
Wycinek dokumentacji aplikacji GAD
Wycinek dokumentacji aplikacji GAD
 
Gdy opanujesz testy na aplikacji GAD, wtedy możesz śmiało podjąć wyzwanie testowania bardziej rozbudowanych serwisów😉
 
💡
Nasi kursanci mogą zgłaszać nam pomysły na nowe funcjonalności do aplikacji GAD. Z zrealizowanych pomysłów wprowadziliśmy już upload plików czy Quiz, jako nietypowe zagadnienie do testów.
 

Kod lekcji - podeszliśmy do tego kompleksowo

 
Zacznę od tego, że jakości tworzonego podczas lekcji kodu strzegą narzędzia, które wspólnie konfigurujemy i włączamy jako element frameworka. Dzięki temu, zarówno kod z lekcji i kod kursanta posiadają identyczne style formatowania, weryfikacji pisowni czy standardów.
Przykład z lekcji, Omówienie architektury zabezpieczenia testów statyczną analizą kodu
Przykład z lekcji, Omówienie architektury zabezpieczenia testów statyczną analizą kodu
Kursant jest w stanie samodzielnie przeprowadzić statyczną analizę kodu i już na tym najwcześniejszym etapie wyeliminować najczęściej powstające błędy.
 
Ale to nie wszystko…
 
W każdej lekcji z kodem skupiamy się aby kursant miał możliwość drobiazgowego porównania zmian tworzonego kodu z tym, który powstał w wyniku nagrania lekcji wideo.
Zakończenie lekcji - przegląd i commit zmian
Zakończenie lekcji - przegląd i commit zmian
Zakończenie pracy nad daną porcją kodu sygnalizujemy commitem, dzięki czemu wiemy jaka część powinna zostać utworzona w ramach danej lekcji.
Kursant widzi wszystkie zmiany transparentnie i może szybko zweryfikować czy nie nadpisał/uszkodził poprawnego kodu.
Poszczególne zmiany izolowane przez commity
Poszczególne zmiany izolowane przez commity
Dzięki temu, że każda lekcja jest zakończona uruchomieniem testów i pełną statyczną analizą kodu. Dlatego wiemy, że w lekcji znajduje się tylko działający kod dostosowany do założonych standardów😉
Dla każdej lekcji z kodem mamy osobne miejsce w specjalnym repozytorium, dlatego kursant może w każdej chwili odtworzyć stan z początku lub końca dowolnej lekcji. Nałożyć ten kod na swój framework i przeglądnąć różnice.
 
Kod każdej lekcji w dedykowanym repozytorium
Kod każdej lekcji w dedykowanym repozytorium
 
Dodatkowo, można bardzo łatwo zacząć pracę będąc na nowej maszynie, gdy utknęliśmy albo nasz kod totalnie zepsuliśmy podczas eksperymentów.
Wystarczy kilka poleceń, które opisaliśmy w dokumentacji i już cały framework jest przygotowany z oczekiwanym stanem do rozpoczęcia lekcji!
Wycinek struktury budowanego frameworka
Wycinek struktury budowanego frameworka
Jako wisienkę na torcie warto wymienić część lekcji w formacie tekstowym.
Kursant znajdzie w nich uzupełnione informacje o zastosowanym kodzie oraz przykłady do szybkiego skopiowania i porównania.
 

Czy Playwright kurs jest dla każdego?

 
Oczywiście nie jest to Program dla wszystkich…
notion image

🦅Zaawansowani

 
Testerzy z dużym doświadczeniem w budowaniu i utrzymaniu pełnoskalowych frameworków zapewne znajdą mniej inspiracji niż początkujący i średnio-zaawansowani użytkownicy😉
 

🐣Początkujący

 
Jeśli chodzi o totalnie początkujących w obszarach IT jest prosta droga aby się dowiedzieć.
Wystarczy przerobić darmowe materiały z Programu dostępne na YouTube czy naszej platformie.
Playlista Kurs Praktyczne Wprowadzenie do Testów Automatycznych z Playwright na YouTube https://www.youtube.com/playlist?list=PLfKhn9AcZ-cD2TCB__K7NP5XARaCzZYn7
Playlista Kurs Praktyczne Wprowadzenie do Testów Automatycznych z Playwright na YouTube https://www.youtube.com/playlist?list=PLfKhn9AcZ-cD2TCB__K7NP5XARaCzZYn7
Wtedy można odpowiedzieć sobie na pytanie czy jest to materiał dla mnie.
Wszystko zależy od indywidualnych umiejętności, wiedzy technicznej z obsługi systemów lub oprogramowania.
 

🐓Średnio-zaawansowani

 
Biorąc na klatę przygotowanie materiałów mocno wykraczających poza podstawy liczymy się z tym, że odwiedzą nas kursanci z bardzo różnym poziomem wiedzy.
Mieliśmy już styczność z takimi nierównościami podczas szkoleń czy w innych naszych Programach.
Nasze warsztaty na konferencji Quality Excites.
Nasze warsztaty na konferencji Quality Excites.
 
Dlatego podczas przygotowania tego Programu najpierw skupiliśmy się na fundamentach. Mamy tematy dla ultra początkujących (Praktyczne wprowadzenie do testów automatycznych), uzupełniające (JavaScript / TypeScript dla Testera) czy środnio-zaawansowane (Budowa profesjonalnego frameworka testowego w oparciu o Playwright).
 
 
notion image
 
 
Dostajemy mnóstwo opinii i sugestii dzięki którym staramy się dostosować Program tak aby posłużył jak największej liczbie testerów. Po ukończeniu opracowania obecnych tematów chcemy przejść do serwowania kolejnego poziomu wiedzy.
notion image
Nie byłoby to możliwe bez fundamentów, które opracowaliśmy. Jestem z tego mega dumny, bo takie podejście pozwala nam wyjść poza podstawy dostępne w większości materiałów w sieci.
 
Dlatego wierzę w to, że przygotowywane przez nas rozszerzenia Programu wesprą także bardziej doświadczonych testerów w ich rozwoju i pracy. Więcej opisuję w akapicie Wizja.
 

Czas

 
Taki Program wymaga od testera inwestycji czasu. Cały materiał to dziesiątki wartościowych, ale wymagających skupienia godzin. Razem rozwijamy kod, rozważamy i analizujemy różne przypadki. Razem przechodzimy przez refaktoryzację.
notion image
Proces nauki wymaga zainwestowanie czasu. Jeśli go nie masz to nie zalecam tego Programu.
 

Wsparcie

 
Staramy się kompleksowo wyjaśniać tematy w lekcjach. Wiemy jednak jak ciekawscy są testerzy. Umożliwiamy różne formy wsparcia w związku z materiałami.
Najpopularniejszą jest zadawanie pytań pod każdą lekcją. Odpowiadamy zazwyczaj w 48 godzin (zwykle dużo prędzej). Staramy się rozwiać wątpliwości i nigdy nie pozostawiamy sprawy bez odpowiedzi.
 
notion image
 
Jeśli zachodzi potrzeba to rozwijamy lekcje o sugestie i przygotowujemy uzupełniające materiały.
 
Dbamy o to aby kursant mógł rozwijać się i uczyć w spójnym ekosystemie wiedzy.
 
Przykładem mogą być dedykowane kursy z JavaScript i TypeScript. Dzięki temu kursant może mieć pewność, że w ramach jednego Programu może uzupełnić niezbędną wiedzę do progresowania z materiałami z kursu Playwright.
https://jaktestowac.pl/course/typescript-dla-testera/
Oczywiście nie jesteśmy robotami, dlatego duże pytania spoza Programu to już zakres indywidualnych konsultacji.
W tym celu wystarczy się z nami skontaktować a my odpowiemy w jaki sposób możemy pomóc.
 

Gwarancja

 
Na koniec rozważań z cyklu czy warto?, zaznaczę: po nabyciu kursu zawsze dajemy 100% gwarancji satysfakcji.
Jeśli po kilku tygodniach pracy z materiałami okaże się, że nie jest to oczekiwany materiał, po prostu zwracamy 100% środków.
Proste 🙂
notion image
Mówię serio - możesz przerobić dowolną ilość materiałów i zrezygnować.
Brzmi trochę jak strzał w kolano. Inicjatywa 🔗jaktestowac.pl właśnie dzięki dochodom z kursów pozwala na inwestycje w tworzenie jeszcze lepszych materiałów, które pochłaniają setki godzin wytężonej pracy.
 
Dzięki zaufaniu testerów i jakości jaką udostępniamy, możemy to robić.
Opinia kursanta z kursu Playwright Podstawy Autoamtyzacji
Opinia kursanta z kursu Playwright Podstawy Autoamtyzacji
Zwroty są bardzo rzadkimi przypadkami i często wynikają z zupełnie innych przyczyn niż dopasowanie materiałów.
Oczywiście zwracamy zainwestowane środki bez potrzeby podawania przyczyny ale mamy bardzo dobry kontakt z kursantami więc często dostajemy sporo dodatkowych informacji 😀
 

Konkurencyjne technologie

Dlaczego realizujemy tak olbrzymi projekt akurat z Playwright i TypeScript?
Post w którym omawiamy różne języki w Playwright https://playwright.info/playwright-typescript-a-inne-jezyki-java-python
Post w którym omawiamy różne języki w Playwright https://playwright.info/playwright-typescript-a-inne-jezyki-java-python
Czy Cypress lub Selenium nie było by lepsze? Czy Python albo Java nie są częściej używanymi w testowaniu językami?
notion image
 
Są to bardzo dobre pytania!
 
Pracujemy w automatyzacji testów od ponad dekady i zetknęliśmy się z bardzo wieloma technologiami. Mój profil na 🔗stackoverflow.com mówi sam za siebie:
notion image
Wraz z powstaniem i wdrażaniem Playwright w projektach dostrzegliśmy szansę na narzędzie, które w końcu wesprze zapewnienie jakości w projekcie dla testerów na różnych poziomach zaawansowania.
Początkujących testerzy skorzystają z wtyczki w VSCode, automatycznego generowania testów z Code Generator, czy ułatwień jak Automatic Waits.
Bardziej zaawansowani mogą wykorzystać strategię z API Mocking, Worker-scoped Fixtures czy działaniem modyfikującym używane przeglądarki za pomocą projektów.
 
notion image
Dodatkowo pełne wsparcie TypeScript owocuje możliwościami synchronizacji testerów z zespołem deweloperskim, gdyż nie ukrywajmy - front-end to już wyłącznie stos JavaScript i TypeScript.
notion image
 
Prostota, wsparcie narzędziowe, bezpłatny stos do rozwoju testów to jak połączenie najlepszych cech znanych z Cypress i Selenium.
Wspominając chociażby składnie i sposób pisania testów jak w Selenium oraz narzędzia do debugowania i wizualizacji przebiegu testów znane z Cypress.
To wszystko znajdziecie właśnie w Playwright.
notion image
 
Playwright nie jest bez wad, tak samo jak i TypeScript. Mówimy o tym głośno i nie ukrywamy niczego. Dzielimy się statystykami i przemyśleniami w naszych opracowaniach:
 
Powtarzamy też do bólu w lekcjach:
Zweryfikuj dane rozwiązanie, zaprezentuj i przedyskutuj je ze swoim zespołem, aby dobrać najlepsze podejście do istniejącego kontekstu.
 
notion image
Finalnie celem tego Programu jest nauczenie kursanta tworzenia rozwiązania do zabezpieczenia jakości, wykorzystania różnego rodzaju wzorców, strategii, podejść i dobrych praktyk.
 
Miłym podsumowaniem tego zagadnienia są głosy płynące od naszych kursantów. Wielu z nich pracuje we frameworkach w innych językach czy technologiach. Nie przeszkadza im to wykorzystywać zaprezentowanych w kursie strategi czy praktyk.
Przykład omówienia architektury z lekcji o projektach zależnych i zarządzaniu sesją użytkownika
Przykład omówienia architektury z lekcji o projektach zależnych i zarządzaniu sesją użytkownika
Podkreślę: Niezależnie od stosowanej w Programie technologii Playwright czy TypeScript😉
 

Czy ten Program to bilet w jedną stronę?

Trochę tak, biorąc pod uwagę uzależniający potencjał stosu Playwright + TypeScript.
Jednak na końcu, niezależnie od wyboru technologii, paradygmaty pozostaną bardzo podobne i możesz przenieść je do innego typu projektu.
notion image

Wizja ewolucji

 
Program Playwright to obecnie (na 10.2023) 6 kursów oraz ponad 35 godzin skrupulatnie przygotowanego i obrobionego materiału wideo (🚧 to kursy w opracowaniu).
notion image
Na tym nie koniec, kursant, który dołączy do Programu, w przyszłości otrzyma kolejne wartościowe materiały.
 
notion image
 
Chcemy aby Program Playwright stał się produktem w którym wykroczy daleko poza poznanie solidnych fundamentów z zakresu budowy własnego frameworka do testów GUI oraz API.
 
Pracujemy nad tym aby uwzględnić w nim bardziej zaawansowane tematy związane z testowaniem. Dostosowane do szczególnych kontekstów i potrzeb odnośnie utrzymania jakości w projekcie.
notion image
Przykładem może być wsparcie testów GUI z pomocą API. Mockowanie ruchu sieciowego, wstrzykiwania danych do front-end czy testowania w izolacji.
Webinar stanowiący część Programu:  https://jaktestowac.pl/mockowanie/
Webinar stanowiący część Programu: https://jaktestowac.pl/mockowanie/
Wspomniane techniki są często pomijane w typowych frameworkach. Chcemy aby testerzy czuli się swobodnie z implementacją wspomnianych strategii oraz celowali w jeszcze bardziej optymalne rozwiązania.
 
Dlatego idziemy dalej, pracując nad dodatkowymi materiałami do Programu: Przegląd Architektury Testów i Rozszerzenie Architektury Frameworka.
notion image
Dzięki temu kursant będzie mógł rozszerzyć i pogłębić swoją wiedzę z dziedziny automatyzacji, testowania, architektury i dobrych praktyk. A w komercyjnym projekcie wyznaczyć wysokie standardy i elastycznie stosować poznane strategie.

Program Playwright to nasza misja

 
Jak widzisz Program Automatyzacja Testów z Playwright to nie tylko kolejny kurs a wielowymiarowy projekt, który chcemy rozwijać przez najbliższe miesiące a może i lata.
Program Testy Automatyczne z Playwright
Program Testy Automatyczne z Playwright
Wszystko po to aby testerzy mieli możliwość zdobycia profesjonalnej wiedzy w przystępnym formacie.
 
A na końcu… chodzi o to aby w ręce nas wszystkich trafiały wolne od bugów i wysokiej jakości aplikacje.
Czego Tobie i sobie życzę🙌
 
Wszelkie informacje odnośnie Programu znajdziesz tutaj: 🔗https://jaktestowac.pl/playwright