Automatyzacja i testowanie w Chrome

Automatyczne testowanie przeglądarek jest niezbędne do tworzenia niezawodnych aplikacji internetowych wysokiej jakości. Niezależnie od tego, czy uruchamiasz kompleksowe pakiety testów w trybie ciągłej integracji (CI), przeprowadzasz testy regresyjne w różnych wersjach przeglądarki czy automatyzujesz interakcje z przeglądarką, Chrome oferuje specjalny zestaw narzędzi i trybów wykonywania przeznaczonych dla programistów i inżynierów automatyzacji testów.

W tym omówieniu przedstawiamy główne produkty w ekosystemie automatyzacji i testowania Chrome – Chrome for Testing, ChromeDriver, Puppeteer i Chrome w trybie bez interfejsu graficznego – oraz wyjaśniamy, jak można ich używać razem, aby tworzyć niezawodne i powtarzalne przepływy pracy związane z testowaniem.


Chrome for Testing

Chrome for Testing to specjalna wersja Chrome przeznaczona do testowania aplikacji internetowych i automatyzacji.

Podczas uruchamiania kompleksowych zestawów testów lub potoków trybu ciągłej integracji (CI) często potrzebujesz spójnych i powtarzalnych wyników w kolejnych przebiegach testów. Zamiast polegać na standardowych instalacjach przeglądarki, Chrome for Testing umożliwia pobieranie i przypinanie konkretnych wersji Chrome do środowisk testowych.

Najważniejsze funkcje

  • Pobieranie wersji na żądanie: uzyskaj dostęp do konkretnych plików binarnych Chrome z numerem wersji, aby zawsze testować dokładnie wybraną wersję.
  • Sparowane pliki binarne we wszystkich kanałach: w przypadku każdej wersji Chrome we wszystkich kanałach (stabilnym, beta, deweloperskim i Canary) Chrome for Testing udostępnia pasujące pliki binarne Chrome sparowane z odpowiednimi plikami binarnymi ChromeDriver, a także starym powłoką Chrome bez interfejsu graficznego (chrome-headless-shell) dla tych, którzy nadal używają jej w testach automatycznych.
  • Łatwa automatyzacja pobierania: pliki binarne można łatwo pobrać za pomocą narzędzia wiersza poleceń @puppeteer/browsers lub sprawdzić ich dostępność na panelu.

Więcej informacji


ChromeDriver

ChromeDriver to samodzielny serwer open source, który implementuje standard W3C WebDriver i dwukierunkowy protokół WebDriver BiDi. Działa jako pomost między platformami testowymi opartymi na WebDriver (takimi jak Selenium, WebDriverIO i Nightwatch) a przeglądarką Chrome.

Najważniejsze funkcje

  • Obsługa W3C WebDriver i WebDriver BiDi: obsługuje zarówno klasyczne polecenia automatyzacji WebDriver, jak i dwukierunkową komunikację w czasie rzeczywistym za pomocą WebDriver BiDi, co umożliwia szybkie nasłuchiwanie zdarzeń, monitorowanie sieci i przechwytywanie dzienników.
  • Wydawanie w tym samym czasie co Chrome for Testing: wersje ChromeDriver są zintegrowane bezpośrednio z infrastrukturą Chrome for Testing. W przypadku każdej wersji Chrome for Testing jednocześnie wydawana jest pasująca wersja ChromeDriver, co eliminuje problemy z niezgodnością wersji.

Więcej informacji


Animator

Puppeteer to biblioteka JavaScript opracowana przez Google, która udostępnia interfejs API wysokiego poziomu do sterowania Chrome za pomocą protokołu narzędzi deweloperskich w Chrome (CDP) lub WebDriver BiDi.

Najważniejsze funkcje

  • Automatyzacja bez konfiguracji: Puppeteer domyślnie automatycznie pobiera zgodny plik binarny Chrome for Testing, co umożliwia automatyzację przeglądarki od razu po zainstalowaniu.
  • Pełna kontrola nad Chrome: możesz łatwo robić zrzuty ekranu, generować pliki PDF, automatyzować przesyłanie formularzy, przechwytywać żądania sieciowe i wykonywać testy interfejsu w trybie z interfejsem graficznym lub bez niego.

Więcej informacji


Tryb bez interfejsu graficznego Chrome

Chrome w trybie bez interfejsu graficznego umożliwia uruchamianie Chrome w środowisku bez nadzoru i bez widocznego interfejsu użytkownika. Po przekazaniu flagi --headless w wierszu poleceń Chrome działa bezproblemowo w środowiskach serwerowych, kontenerach i potokach CI/CD.

Najważniejsze funkcje

  • Ujednolicony silnik przeglądarki: nowoczesny tryb bez interfejsu graficznego (--headless) korzysta z tej samej implementacji przeglądarki co Chrome z interfejsem graficznym.
  • Bogate możliwości automatyzacji i debugowania: obsługuje robienie zrzutów ekranu, generowanie plików PDF, zdalne debugowanie i konfigurowanie ekranu wirtualnego.

Więcej informacji


Przykład: używanie tych produktów razem

W typowym przepływie pracy związanym z automatycznym testowaniem lub trybem ciągłej integracji (CI) te produkty współpracują ze sobą, aby zapewnić powtarzalne środowisko testowe bez nadzoru:

  1. Plik binarny przeglądarki (Chrome for Testing): użyj konkretnego pliku binarnego Chrome for Testing z przypiętą wersją, aby wyniki testów były deterministyczne w kolejnych przebiegach.
  2. Tryb wykonywania (Chrome w trybie bez interfejsu graficznego): uruchom ten plik binarny w trybie bez interfejsu graficznego (--headless), aby testy były wykonywane bezproblemowo na serwerach, w kontenerach lub potokach CI bez wyświetlania grafiki.
  3. Sterownik automatyzacji (Puppeteer lub ChromeDriver): steruj przeglądarką za pomocą biblioteki automatyzacji, takiej jak Puppeteer , lub dowolnej innej platformy testowej połączonej przez WebDriver BiDi.

Puppeteer automatycznie łączy te elementy. Po zainstalowaniu domyślnie pobiera zgodny plik binarny Chrome for Testing i uruchamia go w trybie bez interfejsu graficznego.

Jeśli używasz platform W3C WebDriver (takich jak Selenium lub WebdriverIO), możesz automatycznie pobrać pasującą parę plików binarnych Chrome for Testing i ChromeDriver oraz przekazać flagę --headless, aby uruchomić przeglądarkę bez interfejsu użytkownika.


Wskazówki dotyczące kanałów wersji i przedsiębiorstw