Playwright 1.56.0

Playwright 1.56.0
Nowa wersja Playwrighta to jedno z tych wydań, które oprócz poprawy wygody pracy, zmieniają też sposób myślenia o automatyzacji testów. Zamiast kolejnych usprawnień frameworku, dostaliśmy kompletny system oparty na agentach AI, które potrafią samodzielnie analizować aplikację, generować testy, a nawet je naprawiać.

Redukcja kosztu utrzymania testów

Największą innowacją jest wprowadzenie systemu Playwright Agents, trójdzielnej struktury opartej na współpracy między AI a kodem testów. To podejście eliminuje konieczność ręcznego przepisywania planów testowych na kod.

Planner Agent analizuje aplikację webową i tworzy czytelne plany testów w formacie Markdown. To nie jest generowanie kodu, ale zaproponowanie scenariuszy w formie zrozumiałej dla człowieka, nadających się do rewizji, modyfikacji i dalszego przekształcenia. Generator Agent przekształca ten plan w realny kod testów Playwrighta: kompletny, z selektorami, asercjami i typowymi praktykami automatyzacyjnymi, bez potrzeby ręcznego przepisywania specyfikacji na testy. Healer Agent to komponent odpowiadający za odporność testów na zmiany w aplikacji. W przypadku np. modyfikacji selektorów lub struktury DOM testy są automatycznie naprawiane i adaptowane, bez konieczności interwencji zespołu. 

To przesuwa ciężar pracy tworzenia i naprawiania testów na ich przegląd zatwierdzanie. 

Integracja z edytorami i CI/CD

Agenty mogą zostać zainicjowane w środowiskach takich jak VSCode, Claude Code czy OpenCode, co pozwala na kontekstową analizę projektu. Można je włączyć także w pipeline’ach CI/CD, np. w GitHub Actions, gdzie uruchamiane są one jako część procesu testowego, których obejmuje także healing. To daje potencjał do zbudowania niemal samonapędzających się zestawów testowych.

Debugowanie

Wersja 1.56.0 wnosi nowe, precyzyjne API do analizy testów:

  • page.consoleMessages() – pozwala analizować błędy z konsoli podczas lub po wykonaniu testu,
  • page.pageErrors() – służy do zbierania wyjątków JavaScript, np. przy obsłudze formularzy,
  • page.requests() – umożliwia analizę zapytań sieciowych, co przydaje się przy testach integracyjnych i analizie wydajności.

Nie są to narzędzia do „ładnych logów”, ale bardziej punkty zaczepienia, które pozwalają śledzić realne problemy w kodzie aplikacji. 

Testy selektywne i przewidywalne

Dodano możliwość precyzyjnego kontrolowania, które testy mają zostać uruchomione. Nowe flagi CLI (--test-list, --test-list-invert) pozwalają wskazywać lub wykluczać testy na podstawie listy, co ułatwia zarządzanie testami w środowiskach CI/CD, gdzie potrzebne są różne zestawy testowe dla różnych etapów. 

Dodatkowo, HTML reporter został uproszczony i zyskał więcej opcji konfiguracji, m.in. wyłączenie przycisków w środowiskach produkcyjnych, lepsze wsparcie dla snapshotów wizualnych oraz pojedynczy tryb workerów do analizowania problemów z wyścigami i synchronizacją.

Zmiany niekompatybilne

Istotna zmiana dotyczy usunięcia wsparcia dla browserContext.backgroundPages() i eventu backgroundpage. Zamiast tego zaleca się korzystanie z eventów worker, co wymaga dostosowania aplikacji korzystających z PWA lub service workerów. To oznacza konieczność rewizji architektury testów w niektórych projektach. 

Inne udogodnienia i szczegóły techniczne

Ulepszono testy dostępności. Playwright od teraz dokładniej analizuje placeholdery w formularzach, wspierając bardziej szczegółową walidację accessibility. Wprowadzono także zmiany w zmiennych środowiskowych. PLAYWRIGHT_TEST pozwala na łatwiejsze rozpoznanie środowiska testowego w kodzie aplikacji. Zaktualizowano też silniki przeglądarek Chromium 141, Firefox 142, WebKit 26, zapewniając w ten sposób pełną kompatybilność z najnowszymi standardami webowymi. 

Wnioski

Playwright 1.56.0 pokazuje wyraźnie, w jakim kierunku zmierzamy. Nie opieramy się już tylko na kodowaniu, ale także na utrzymaniu. Twórcy zrobili właśnie kolejny krok w stronę bardziej inteligentnego, samonaprawiającego się środowiska testowego. Ale jak zawsze, technologia to tylko narzędzie i najwięcej zależy od tego, w jaki sposób ją wykorzystamy. 

Z pełną dokumentacją funkcji Agentów Playwrighta zapoznacie się tutaj: https://playwright.dev/docs/test-agents 
 

To powinno Cię zainteresować