👨‍🏫 Porady

Dlaczego warto wybrać Playwright + TypeScript?

Language
date
Jun 18, 2023
slug
dlaczego-playwright-typescript
author
status
Public
tags
TypeScript
Playwright
Porady
summary
Gdy wybierasz Playwright warto dobrze zastanowić się jaki język wybrać do automatyzacji testów.
type
Post
thumbnail
dlaczego-playwright-typescript(1).jpg
updatedAt
Sep 26, 2023 10:24 AM
category
👨‍🏫 Porady
Często testerzy lub zespoły zadają sobie pytanie:
W jakiej technologi (języku programowania) wybrać narzędzie Playwright?
Najprostszą odpowiedzią będzie Playwright + TypeScript.
notion image

Kontekst projektu

Oczywiście wszystko zależy od zespołu, umiejętności i kontekstu projektu.
🙋‍♂️ W jakim języku pisany jest projekt?
🙋‍♂️ Jakie języki programowania zna zespół?
🙋‍♂️ Czy znane są ograniczenia związane z użyciem Playwright dla języków innych niż TS/JS?
Ten ostatni punkt jest bardzo ważny gdyż wielu początkujących z Playwright nie ma świadomości czym różni się Playwright z Python/Java/C# od Playwright dla Node.js (czyli dla TypeScript i JavaScript).
 
📌 Więcej o różnicach pomiędzy pomiędzy wersjami Playwright dla rożnych języków przeczytasz: 🔗Różnice między Playwright w TypeScript/JavaScript a Java, Python, C#

Zalety i wady zastosowania Playwright z TypeScript/JavaScript

 
Przy decyzji o wyborze języka warto rozważyć zalety pisania testów w Playwright i TypeScript/JavaScript:

Plusy:

⭐ Wsparcie zespołu
  • W większości przypadków w projekcie na front-endzie (GUI) wykorzystuje się JavaScript lub TypeScript (często back-end to też TS/JS)
  • Cały zespół pracuje z testami (QA i Dev)
  • Często kod testów w Playwright jest w repozytorium front-end. Łatwo utrzymać aplikację w TypeScript z testami w TypeScript w jednym repozytorium
  • Tester może lepiej zrozumieć język i stos w jakich pisany jest front-end
⭐ Test Runner
  • Domyślnie dla TS/JS pobieramy Playwright jako Playwright Test (a w innych językach jedynie samo API Playwright, które dla TS/JS jest opakowane przez Playwright Test)
  • Playwright Test Runner dostępny jest tylko w dla TS/JS.
  • Oferuje on:
    • automatyczne zrównoleglenie testów (ze wsparciem wielu przeglądarek)
    • automatyczne raporty (ze zrzutami ekranu, wideo testu, trace, retry )
    • web first assertions
    • Visual Testing
    • UI mode, który jest bardzo dużym ułatwieniem w pisaniu testów
    • natywną integrację z shardami i GitHub Actions
    • więcej poczytasz tutaj: 🔗Różnice między Playwright w TypeScript/JavaScript a Java, Python, C#
⭐ Przykłady implementacji i wyszukiwanie rozwiązań
  • Najwięcej przykładów w sieci dotyczących Playwright znajdziesz właśnie dla stosu Node.js
  • Dotyczy to:
    • oficjalnej dokumentacji
    • artykułów w sieci
    • GitHub issues (to jest kopalnia fajnych skryptów)
    • odpowiedzi na StackOverflow
⭐ Playwright jest natywnie rozwijany w TS
  • Nowe wersje i poprawki najszybciej trafiają do wersji JavaScript/TypeScript
  • Wersja w TS/JS posiada wszystkie funkcjonalności, a w innych językach może brakować niektórych funkcji (np. Visual Testing czy UI Mode)
⭐ Wsparcie pluginów dla Node
  • W Node.js dostępnych jest bardzo wiele pluginów (Lighthouse, linter, Nx), które można od razy wykorzystać w Playwrighcie
⭐ VS Code
  • Praca w VSC z użyciem natywnego pluginu przez cały zespół. Duże ułatwienie w komunikacji.

Minusy:

❌ Debugowanie ze względu na asynchroniczność. Zdecydowanie wygodniej zaawansowane debugowanie wygląda np. w Python + PyCharm
❌ Brak pewnych udogodnień w TypeScript np. w Python mamy named parameters

Zalecenia Twórców

Sami twórcy Playwright przyznają, że największe jest globalne użycie stosu Node.js i to będzie ich priorytet. Zalecają w pierwszej kolejności wybór stosu wspierającego TypeScript.
notion image
Warto wziąć pod uwagę ten element przy wyborze języka dla Playwright.

Szybkość wdrożenia i utrzymanie

Dodatkowym argumentem przemawiającym za użycie Type Script jest fakt, że użycie Test Runnera dostępnego tylko dla tego języka TS/JS może istotnie przyspieszyć pracę w tworzeniu frameworka testowego. Dzięki już zaimplementowanym udogodnieniom odpada nam:
  • Pisanie tych funkcji i ich integracji z narzędziami
  • Utrzymanie własnych rozwiązań
  • Wdrażanie zmian i dodawanie nowych rozwiązań
Te zalety mogą być dobry powodem aby przejść z innego języka programowania testów automatycznych do TypeScript i finalnie zaoszczędzić czas na implementacji i rozwijaniu frameworka opartego o Playwright.

TypeScript czy JavaScript?

Na koniec możesz zapytać o wybór miedzy JavaScript a TypeScript. Tutaj wybór jest prosty.
TypeScript jest rozszerzeniem JavaScript dającym możliwość większej kontroli nad pisanym kodem.
✅ Zalety TS vs JS to miedzy innymi:
  • statyczne typowanie (z podpowiadaniem składni dostępnym w IDE)
  • łatwiejsze utrzymanie i czytelności kodu
  • unikanie złych praktyk i podatnego na błędy kodu znanego z JavaScript
  • podobieństwo do innych języków jak Java, C# czy Python (ze statycznym typowaniem)
❌ Minusem TypeScript będzie to, że mogą się zdarzyć biblioteki, które nie będą posiadały wsparcia do używania z kodem pisanym w TypeScript. Ze względu na rosnąca popularność TypeScript takie sytuacje zderzają się coraz rzadziej.

Popularność

BONUS: Oficjalne pobrania PW (dziennie) (stan na 2023Q2):

Na koniec

Już wiesz jakie są wady i zalety wyboru TypeScript dla Playwright jednak pamiętaj, że ostateczna decyzja należy do Ciebie i twojego zespołu!