Przewodnik krok po kroku, jak skonfigurować Playwright i zrozumieć jego przewagę nad Cypress i Selenium

Kamil Sosnowski

W dziedzinie tworzenia aplikacji internetowych kluczowe znaczenie ma testowanie. Zapewnia ono, że aplikacje działają poprawnie i są wolne od błędów. Wraz ze wzrostem liczby frameworków i bibliotek do testowania niezwykle istotny staje się wybór do danego projektu najlepszego z nich. Playwright firmy Microsoft szybko zyskuje popularność wśród programistów ze względu na rozbudowane możliwości oraz łatwość użytkowania. W tym tekście porównam go z chętnie wybieranymi konkurentami, a więc Cypress i Selenium. Przeprowadzę Cię również przez proces instalacji i konfiguracji Playwright dla Twoich projektów.

Zalety Playwright vs Cypress i Selenium

  1. Wsparcie dla przeglądarek

Playwright obsługuje testowanie w wielu przeglądarkach – w tym Chrome, Firefox i Safari. Umożliwia programistom testowanie aplikacji na różnych platformach bez żadnych problemów. W przypadku Cypress obsługiwana jest tylko przeglądarka Chrome, podczas gdy Selenium ma ograniczone wsparcie dla Safari. Playwright gwarantuje, że można na wczesnym etapie wychwycić potencjalne problemy związane z konkretną przeglądarką. Umożliwia również zapewnienie spójnego wrażenie z użytkowania naszej aplikacji na różnych platformach.

  1. Spójność API

Narzędzie Playwright zapewnia spójny interfejs API do pracy z różnymi przeglądarkami, ułatwiając programistom pisanie i utrzymywanie testów. Selenium wymaga natomiast różnych wywołań API dla różnych przeglądarek, co może prowadzić do bardziej złożonego i podatnego na błędy środowiska testowego. Jednolity interfejs API oferowany przez Playwright pomaga zmniejszyć nakład pracy programistów w tym aspekcie. Dzięki temu mogą oni skupić się na pisaniu dobrych przypadków testowych, zamiast martwić się szczegółami związanymi z daną przeglądarką.

  1. Szybkość i niezawodność

W porównaniu z Selenium vs Playwright oferuje szybsze i stabilniejsze testy. Jest to możliwe dzięki temu, że zbudowany jest on na nowoczesnych interfejsach API do automatyzacji przeglądarek. Cypress, choć szybki, może czasami powodować błędy i niespójności w wynikach testów. Zastosowanie najnowszych interfejsów API Playwright zapewnia wydajne działanie testów, skracając czas ich wykonywania i zwiększając ogólną produktywność.

  1. Badanie ruchu sieciowego

Wbudowana funkcjonalność służąca do badania ruchu sieciowego w Playwright umożliwia programistom łatwe przechwytywanie i monitorowanie żądań sieciowych. Podczas gdy Cypress również zapewnia tę funkcję, Selenium nie ma wsparcia dla takiej funkcjonalności. Dzięki możliwościom, jakie za sobą niesie owa funkcjonalność, można uzyskać lepszą kontrolę nad zachowaniem aplikacji podczas testowania, co ułatwia symulację różnych scenariuszy i identyfikację potencjalnych problemów.

  1. Automatyczne oczekiwanie

Playwright automatycznie czeka, aż elementy będą dostępne, widoczne i stabilne. Ułatwia to pisanie testów bez konieczności ręcznej obsługi czasu oczekiwania i jego limitów. Pomaga też w zmniejszeniu niestabilności testów i gwarantuje wiarygodniejsze oraz spójniejsze wyniki. Cypress również oferuje taką funkcję, ale Selenium wymaga od programistów jawnego zarządzania tymi parametrami.

Możliwości testowania API w Playwright

Oprócz potężnych funkcji automatyzacji przeglądarki Playwright zapewnia również doskonałe wsparcie dla testowania API. Ma on wbudowaną opcję przechwytywania i modyfikowania żądań oraz odpowiedzi sieciowych. Pozwala to programistom z łatwością testować i weryfikować interakcje z API w swoich aplikacjach. Łącząc testowanie przeglądarki i API w jednym frameworku, Playwright ułatwia proces testowania. Umożliwia też wygodne testowanie end-to-end.

Aby przeprowadzić testowanie API za pomocą Playwright, można użyć Fetch API lub innego dowolnego klienta HTTP do wysyłania żądań do „endpointów” testowanego API. Następnie trzeba potwierdzić oczekiwaną odpowiedź za pomocą asercji dostarczanych przez Playwright. Co więcej, funkcje sieciowe mogą być użyte do mockowania odpowiedzi API. Umożliwia to programistom symulowanie różnych zachowań serwera i przypadków brzegowych bez konieczności modyfikowania rzeczywistej implementacji API. To kompleksowe podejście do testowania API zapewnia, że aplikacje są dokładnie testowane – zarówno pod kątem funkcji frontendowych, jak i backendowych.

Wdrożenie i konfiguracja aplikacji Playwright

  1. Instalacja Playwright

Aby rozpocząć korzystanie z Playwright, najpierw zainstaluj go jako zależność w swoim projekcie. Jak to zrobić? Uruchom poniższe polecenie w terminalu:

npm i playwright

Instalacja Playwright obejmuje również pliki binarne dla przeglądarek Chrome, Firefox i Safari. Dzięki temu masz wszystko, czego potrzebujesz, aby od razu rozpocząć tworzenie testów.

  1. Przygotowanie test runnera

Playwright jest kompatybilny i może być uruchamiany wraz z innymi narzędziami takimi jak Jest czy Mocha. W tym przykładzie użyjemy jednak Playwright Test, czyli dedykowanego runnera. Zainstaluj go, uruchamiając:

npm i -D @playwright/test

Playwright Test został zaprojektowany specjalnie do płynnej współpracy z Playwright, zapewniając potężne i zintegrowane rozwiązanie do testowania.

  1. Konfiguracja Playwright

Utwórz plik konfiguracyjny o nazwie „playwright.config.js” w katalogu głównym projektu. Zobacz, jak wygląda przykładowa prosta konfiguracja:

module.exports = {
  use: {
    headless: true,
    viewport: { width: 1280, height: 720 },
    ignoreHTTPSErrors: true,
  },
};

Ten plik konfiguracyjny określa kilka podstawowych ustawień dla Playwright. Są to np. uruchamianie testów w trybie headless i definiowanie rozmiaru obszaru testowego. Możesz je dodatkowo dostosować w razie potrzeby do konkretnych wymagań projektu.

  1. Pisanie testu

Utwórz nowy plik o nazwie „example.spec.js” w katalogu „tests”. Następnie dodaj poniższy kod, aby utworzyć prosty test:

const { test, expect } = require('@playwright/test');

test('loads the main page', async ({ page }) => {
  await page.goto('https://example.com');
  const title = await page.title();
  expect(title).toBe('Example Domain');
});

W tym teście przechodzimy do witryny example.com, pobieramy tytuł strony i stwierdzamy, że jest on zgodny z oczekiwaną wartością. Jest to podstawowy przykład ułatwiający rozpoczęcie pisania testów przy użyciu Playwright.

  1. Uruchomienie testu

Aby uruchomić test, wykonaj następujące polecenie w terminalu:

npx playwright test

Playwright Test automatycznie wykryje i wykona testy w projekcie. Dostarczy też szczegółowy raport wraz z wynikami. Możesz teraz zacząć dodawać więcej testów, a także zintegrować Playwright z własnymi projektami.

Podsumowanie

Playwright to potężny i nowoczesny framework testowy. Oferuje on wiele zalet w porównaniu z alternatywnymi rozwiązaniami, takimi jak Cypress i Selenium. Najważniejsze to wsparcie dla wielu przeglądarek i spójny interfejs API, a także zaawansowane funkcje, m.in. możliwość przechwytywania danych z sieci i automatyczne oczekiwanie. Dzięki temu jest doskonałym wyborem dla programistów chcących usprawnić proces testowania i zapewnić dostarczanie wysokiej jakości aplikacji internetowych. Postępując zgodnie z powyższym przewodnikiem, możesz szybko skonfigurować i rozpocząć korzystanie z Playwright w swoich projektach, wykorzystując go do tworzenia dobrych i niezawodnych testów.

Poznaj mageek of j‑labs i daj się zadziwić, jak może wyglądać praca z j‑People!

Skontaktuj się z nami