Różne smaki Playwright – o Playwright, Playwright Test, różnych językach i podejściach

Playwright to nie tylko biblioteka, ale zestaw potężnych narzędzi i filozofia testowania oprogramowania.

Podczas prelekcji rozwiejemy najczęściej pojawiające się wątpliwości:

Jaka jest różnica między Playwright a Playwright Test?
Z czym musisz się liczyć, gdy dokonujesz wyboru?
Dlaczego twórcy Playwright wybrali TypeScript?
Jakie są atuty skorzystania z gotowych rozwiązań nawet kosztem zmiany języka programowania?

Dołącz do naszej prelekcji, aby zyskać nową perspektywę na automatyzację testów! 😉

Nagranie

Prezentacja – kliknij obrazek aby wyświetlić

W prezentacji znajdziesz wszystko co widziałeś na webinarze:

Tematy z prezentacji

Kim jesteśmy i jakie mamy doświadczenie?

Przemek Barański
Senior Software Quality Engineer, Principal Engineer
profil na LinkedIn
O doświadczeniu...
  • Rozwija frameworki w Playwright do testów GUI oraz API zintegrowane z procesami CI/CD
  • Komercyjnym testowaniem oprogramowania zajmuje się od ponad 10 lat!
  • Specjalizuje się w tematach performance i automation, które praktycznie wykorzystuje przy zapewnieniu jakości dla globalnych systemów informatycznych.
  • Trenuje testerów od 2015, nie tylko online, ale też bezpośrednio na warsztacie, meetupie, konferencji czy uczelni.
  • Twórca bezpłatnych treści wspomagających testerów w całej Polsce ze stawianiem swoich pierwszych kroków w różnych obszarach testowania (vlog, Git dla Testerów, Podstawy Automatyzacji).
  • Zafascynowany technicznym rozwojem oraz upraszczaniem poznanych konceptów do łatwych i przyjemnych treści 😀
  • Tester nie tylko aplikacji ale i praktyk związanych z życiem, rozwojem i szeroko rozumianą jakością.
Krzysiek Kijas
Senior Software Quality Engineer, Tech Lead, Mentor
profil na LinkedIn
O doświadczeniu...
  • Jako Tech Lead odpowiada za architekturę automatów z Playwright.
  • Z testowaniem i dbaniem o jakość oprogramowania jestem profesjonalnie związany od 2011.
  • Nabywałem doświadczenie w wielu projektach IT z różnych domen biznesowych (transport, finanse, administracja, zarządzanie systemami).
  • Posiadam doświadczenie praktyczne w pracy z różnymi narzędziami CI/CD (Jenkins, GitLab CI, Azure DevOps).
  • W codziennej pracy dbam o szeroko pojętą jakość w projekcie – poczynając od projektowania testów i strategii testowania, definiowanie i usprawnianie procesów, konsultacje rozwiązań, aż po tworzenie i projektowanie architektury frameworków do testów automatycznych.
  • Od 2014 zdobywam doświadczenie jako trener poprzez prowadzenie warsztatów dotyczących jakości, pisania testów i narzędzi wspomagających testowanie.
  • Współtworzę inicjatywę jaktestowac.pl, gdzie od początku przygotowuje kursy i materiały dla Nowoczesnych Testerów.

TIP: 👉 Dokładniej o naszym wsparciu społeczności testerskiej w temacie Playwright poczytasz na stronie Playwright Contribution
TIP: 👉 Nasz darmowy, ponad 8 godzinny darmowy kurs na YouTube o automatyzacji z Playwright – Praktyczne wprowadzenie do testów automatycznych z Playwright
TIP: 👉 Nasz kompleksowy, ponad 60 godzinny Program o automatyzacji z Playwright – Program Testy Automatyczne z Playwright

W jakiej postaci występuje Playwright?

Playwright występuje w 3 postaciach:

  • Playwright Test, czyli Test Runner (narzędzie do uruchamiania testów) i domyślny wybór, gdy chcesz uruchamiać testy z użyciem Playwright. Playwright Test zawiera w sobie bibliotekę Playwright.
  • Playwright – wysokopoziomowe API do interakcji z przeglądarką. Ta opcja może być wyborem, jeśli nie potrzebujesz Test Runnera, lub gdy posiadasz już framework do testów automatycznych i chcesz do niego wpiąć bibliotekę Playwright. Playwright zawiera w sobie bibliotekę Playwright-core.
  • Playwright-core – niskopoziomowe API do interakcji z przeglądarką. To jest “najbardziej podstawowy” zestaw narzędzi Playwright, który zawiera podstawowe funkcje potrzebne do automatyzacji przeglądarek, ale bez dodatkowych udogodnień dostarczanych np. przez Playwright Test czy Playwright. Również ta paczka może najbardziej się zmieniać, co może mieć wpływ na jej wykorzystanie (większe koszty związane z integracją, użyciem i utrzymaniem).

Test Runners

Test Runners dla różnych języków:

W przypadku JavaScript i TypeScript, poza Playwright Test, można wykorzystać następujące runnery:

Co oferuje Test Runner z Playwright Test?

Playwright Test dostępny jest tylko w JavaScript/TypeScript. Oferuje on:

TIP: 👉 Darmowe materiały z webinaru o różnych strategiach projektowania testów w Playwright znajdziesz pod adresem – Testy zależne w Playwright – Gotowe rozwiązania, które użyjesz w swoim projekcie

Popularność Playwright

Stan na styczeń/luty 2024.

Popularność repozytoriów na podstawie polubień (gwiazdek):

Źródło: https://ossinsight.io/collections/testing-tools/

Statystyka liczby pobrań z npmjs:

Źródło: https://npmtrends.com/@playwright/test-vs-cypress-vs-playwright-vs-playwright-core

Jaki wpływ może mieć popularność na Ciebie?
Może ona pomóc Ci zdecydować:

  • W jakiej formie Playwright się specjalizować?
  • Jakiego języka programowania się uczyć?
  • Jakie narzędzia poznawać (IDE, pluginy, frameworki)?
  • W co warto zainwestować czas i naukę?
  • W którą stronę zmierza rynek i co może dominować w projektach?
TIP: 👉 Darmowe materiały z webinaru o mockowaniu w Playwright – Playwright w akcji – testy GUI bez backendu

Playwright i JavaScript/TypeScript




Z czego wynika rosnąca popularność TypeScript?

  • Silne typowanie

    TypeScript wprowadza silne typowanie do języka JavaScript. To pozwala na lepszą kontrolę nad danymi, co jest szczególnie ważne w większych projektach.

  • Zabezpieczenie przed niepoprawnymi danymi

    Dzięki silnemu typowaniu, jesteśmy zabezpieczeni przed niepoprawnymi danymi i błędami związanymi z typami podczas wykonywania kodu. To zwiększa nie tylko bezpieczeństwo, ale również łatwość debugowania i odnajdywania przyczyn problemów.

  • Ekosystem JavaScript

    TypeScript jest zbudowany na bazie JavaScript, wykorzystując jego ekosystem, co oznacza, że można korzystać z istniejących bibliotek i frameworków JavaScript. To ułatwia migrację i integrację TypeScript z istniejącymi projektami.

  • Globalne standardy np. Node.js, npm

    TypeScript integruje się z globalnymi standardami JavaScript, takimi jak Node.js i npm (Node Package Manager). Dzięki temu możliwe jest korzystanie z bogatego ekosystemu pakietów dostępnych w npm.

  • Organizacja kodu znana z Java czy C#

    Struktura kodu w TypeScriptie, z użyciem klas, interfejsów i typów, przypomina organizację kodu znana z tradycyjnych języków programowania, takich jak Java czy C#. To ułatwia programistom i testerom z doświadczeniem w tych językach przejście do TypeScript.

  • Klasy, interfejsy, typy

    TypeScript wprowadza elementy obiektowości, takie jak klasy, interfejsy i różne rodzaje typów, co umożliwia bardziej zorganizowany i zrozumiały kod. Programiści mogą korzystać z konstrukcji znanych z języków programowania zorientowanych obiektowo.

  • Wymuszenie dobrych praktyk

    TypeScript wymusza na programistach stosowanie dobrych praktyk poprzez deklarowanie typów zwracanych wartości, definiowanie obiektów oraz korzystanie z konkretnych struktur kodu. To przyczynia się do utrzymania spójności i czytelności kodu w projekcie.


Wybór Playwright Test z TypeScript

Zalety:

  • Gotowe funkcje od twórców frameworka
    Playwright udostępnia gotowe funkcje, które ułatwiają automatyzację testów, zapewniając wygodne i efektywne narzędzia do interakcji z przeglądarką.
  • Utrzymanie, kompatybilność po stronie twórców
    Dzięki korzystaniu z TypeScript, korzystasz z oficjalnie wspieranego języka, co zapewnia utrzymanie i kompatybilność z nowymi wersjami Playwright oraz ewentualnymi poprawkami i aktualizacjami.

  • Nowe funkcje i poprawki w pierwszej kolejności
    Twórcy Playwright regularnie wprowadzają nowe funkcje oraz poprawki. Korzystając z TypeScript, możesz szybko dostępować do tych aktualizacji w pierwszej kolejności.
  • Szybkość wdrożenia pełnego frameworka (gotowe elementy)
    Gotowe funkcje i elementy frameworka Playwright, dostępne w TypeScript, przyspieszają proces wdrożenia testów, umożliwiając efektywne korzystanie z gotowych narzędzi.
  • Wsparcie społeczności (blogi, przykłady, repozytoria)
    Popularność TypeScript w społeczności programistycznej sprawia, że łatwo znaleźć pomoc, przykłady kodu, blogi oraz repozytoria związane z automatyzacją testów w Playwright.

Wady:

  • Inwestycja w naukę TypeScript
    Decydując się na TypeScript, może być konieczne poświęcenie czasu na naukę tego języka. Jednakże, z racji jego rosnącej popularności, ta inwestycja może przynieść korzyści w dłuższej perspektywie.
TIP: 👉 W naszym poście na playwright.info bardzo dokładnie rozpisujemy temat TypeScript – Dlaczego tester powinien znać TypeScript?

Playwright Test w innych językach (poza JavaScript/TypeScript)?

  • W najbliższym czasie nie będzie Playwright Test dla innych języków
  • Są narzędzia, które oferują podobne funkcjonalności (np. zrównoleglania testów) – wymagają implementacji i utrzymania
  • Około 70-80% pobrań Playwright to wersja TS/JS – oznacza to znacząco mniejsze zainteresowanie w innych językach (* brak statystyk dla JAVA)

Ograniczenia Playwright

  • Brak wsparcia dla starszych wersji przeglądarek
  • Brak natywnego wsparcia dla BDD
  • Brak wsparcia dla urządzeń mobilnych – Real Devices – tylko Android eksperymentalnie
  • All-in-one – dużo opcji i możliwości może też być wadą, gdyż możemy nie mieć potrzeby wykorzystywać jego wszystkie funkcje
  • Styl pisania testów bazujący na JavaScript i TypeScript – potrzeba używania async/await lub then i brak możliwości wykorzystania method chaining (jak w Cypressie)

Kiedy rozważyć inne języki niż TypeScript?

  • Nie potrzebujesz funkcji z Playwright Test

    Jeśli projekt nie wymaga specyficznych funkcji dostępnych w Playwright Test, a standardowe możliwości Playwright są wystarczające, można zdecydować się na inne języki niż TypeScript.

  • Niewielki zakres / krótki czas trwania projektu

    W przypadku projektów o ograniczonym zakresie lub krótkim czasie trwania, może być korzystne używanie języka, w którym zespół ma już doświadczenie i szybkość w implementacji.

  • Brak czasu na naukę nowego języka

    Jeśli nie ma wystarczająco dużo czasu na naukę nowego języka, to warto wybrać coś w czym masz już doświadczenie. Najważniejsza jest wartość, jaką dostarczasz klientowi i projektowi 😉

  • Masz przestrzeń na aktualizację i utrzymanie własnych rozwiązań i pluginów

    Wybór innego języka niż TypeScript może być uzasadniony, jeśli istnieje potrzeba tworzenia własnych rozwiązań i pluginów.

  • Masz dobrą wiedzę programistyczną w danym języku

    Jeżeli zespół ma silne umiejętności programistyczne w konkretnym języku, kontynuowanie pracy w tym języku może być bardziej efektywne niż nauka nowego.

  • Masz doświadczony zespół w danym języku

    Doświadczony zespół w danym języku może z łatwością radzić sobie z problemami, unikać pułapek i dostarczać wysokiej jakości kod, co może być argumentem za pozostaniem przy danym języku.

  • Dobrze znasz i potrafisz integrować narzędzia do testów:
    • Runnery
    • Reportery
    • Pluginy

O czym pamiętać przy wyborze narzędzi

Przy wyborze narzędzia jest konieczna dobra analiza:

  • Wad/zalet danego narzędzia
  • Potrzeb projektowych
  • Przypadków, jakie chcemy zautomatyzować
  • Umiejętności zespołu
  • Czyli ogólny kontekst zespołu/projektu/klienta

Każde z dostępnych narzędzi ma swoje wady i zalety!

A przy wyborze danej biblioteki Playwright pamiętaj, że:

  • Playwright i Playwright Test to różne narzędzia
  • Wybór języka programowania ma znaczenie
  • Koniecznie wypróbuj daną wersję Playwright
  • Sprawdź jak napisać podstawowe testy i wykorzystać jego funkcje

Zewnętrzne linki i materiały

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *