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/browserslub 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
- Dokumentacja ChromeDriver
- WebDriver BiDi – przyszłość automatyzacji w różnych przeglądarkach
- MDN: dokumentacja WebDriver BiDi
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
- Uruchamianie Chrome w trybie bez interfejsu graficznego
- Konfigurowanie ekranów wirtualnych
- Debugowanie w trybie bez interfejsu graficznego
- Dokumentacja wiersza poleceń trybu bez interfejsu graficznego
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:
- 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.
- 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. - 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.