Chrome for Testing: niezawodne pobieranie i automatyzacja przeglądarki

Mathias Bynens
Mathias Bynens

Z przyjemnością przedstawiamy Chrome for Testing – nowy rodzaj Chrome przeznaczony specjalnie do testowania aplikacji internetowych i automatyzacji. W tym artykule wyjaśniamy, dlaczego zespół Chrome uważa to za konieczne, i pokazuje konkretne przykłady, w których Chrome for Testing może przynieść korzyści Tobie jako programiście.

Wprowadzenie

Testowanie przeglądarki to ważny element tworzenia stron internetowych wysokiej jakości, niezależnie od tego, czy odbywa się to ręcznie czy automatycznie. Jednocześnie stworzenie odpowiedniego środowiska testowania przeglądarki jest niezwykle trudne, dlatego jest konsekwentnie zgłaszane jako jeden z najczęstszych problemów twórców stron internetowych. Dziś chcemy poinformować o zmianie, która – mamy nadzieję – łagodzi ten problem.

Automatyczna aktualizacja: świetne dla użytkowników, trudne dla programistów

Jedną z najważniejszych funkcji Chrome jest możliwość automatycznych aktualizacji. Użytkownicy cieszą się, że korzystają z aktualnej i bezpiecznej wersji przeglądarki, która obejmuje zarówno funkcje nowoczesnych platform internetowych, jak i funkcje przeglądarki oraz poprawki błędów.

Jednak dewelopera, który przeprowadza zestaw kompleksowych testów, możesz mieć zupełnie inny punkt widzenia:

  • Zależy Ci na spójnych i odtwarzanych wynikach podczas kolejnych testów, ale może się tak nie stać, jeśli plik wykonywalny lub plik binarny przeglądarki zaktualizuje się pomiędzy 2 uruchomieniami.
  • Chcesz przypiąć konkretną wersję przeglądarki i sprawdzić numer tej wersji w repozytorium kodu źródłowego, aby móc sprawdzić stare zatwierdzenia i gałęzie oraz od tego momentu ponownie przeprowadzać testy względem pliku binarnego przeglądarki.

Nie jest to możliwe dzięki automatycznie aktualizowanym plikom binarnym przeglądarki. W związku z tym możesz nie chcieć używać zwykłej instalacji Chrome do automatycznego testowania. Stanowi to zasadniczą niezgodność między tym, co dobre dla zwykłych użytkowników przeglądarki, a tym, co dobre dla programistów przeprowadzających testy automatyczne.

Pliki binarne przeglądarki z wersjami

Pomijając automatyczne aktualizacje, możesz też mieć trudności ze znalezieniem pliku binarnego Chrome z konkretną wersją. Google celowo nie udostępnia wersji do pobrania Chrome, ponieważ użytkownicy nie powinni zajmować się numerami wersji – zawsze powinni jak najszybciej zaktualizować się do najnowszej wersji. Jest to wygodne dla użytkowników, ale uciążliwe dla programistów, którzy chcą odtworzyć raport o błędzie w starszej wersji Chrome.

Dokładniejszym przykładem tego problemu jest użycie sterownika ChromeDriver w celu automatyzacji przeglądarki. Aby mieć pewność, że pliki binarne są zgodne, musisz nie tylko pobrać plik binarny Chrome Driver o odpowiedniej wersji.

Ponieważ nie ma dobrego sposobu na rozwiązanie tych problemów, wiemy, że wielu programistów pobiera pliki binarne Chromium (nie Chrome), choć to podejście ma pewne wady. Po pierwsze, te pliki binarne Chromium nie są niezawodnie dostępne na wszystkich platformach. Po drugie, są one tworzone i publikowane niezależnie od procesu wydawania Chrome, co uniemożliwia powiązanie ich z prawdziwymi wersjami Chrome, z którymi będą mieli do czynienia użytkownicy. Po trzecie, Chromium różni się od Chrome.

Rozwiązanie: Chrome for Testing

Chrome for Testing to specjalny rodzaj przeglądarki Chrome, który został zaprojektowany z myślą o rozwiązaniu tych problemów. Jest przeznaczony do użycia w testach. Bez automatycznej aktualizacji, zintegrowany z procesem publikowania i udostępniany w każdej wersji Chrome. Wersjonowany plik binarny, który jest jak najbardziej zbliżony do zwykłego Chrome bez negatywnego wpływu na przypadek użycia w testach.

W ramach tworzenia Chrome for Testing wprowadziliśmy zmiany w bazach kodu Chromium i Chrome. Skonfigurowaliśmy też infrastrukturę do tworzenia i przesyłania tych plików binarnych do publicznie dostępnego zasobnika, zgodnie z procesem publikowania Chrome we wszystkich kanałach (stabilnej, beta, deweloperskiej i Canary).

Infrastruktura związana z Chrome for Testing otwiera interesujące możliwości poza samą przeglądarką Chrome. Na przykład problemy ze znajdowaniem pasujących plików binarnych Chrome i ChromeDriver, o których wspominaliśmy wcześniej, można całkowicie wyeliminować, integrując proces wydawania wersji ChromeDriver z infrastrukturą Chrome for Testing. Dzięki temu nie tylko rozwiążesz ten problem, ale też zrównasz wersje ChromeDriver z wersjami Chrome, eliminując konieczność ręcznego zwalniania wersji ChromeDriver.

Jak pobrać pliki binarne Chrome for Testing?

Najłatwiejszym sposobem pobrania plików binarnych Chrome for Testing na swoją platformę jest użycie naszego narzędzia wiersza poleceń @puppeteer/browsers dostępnego w npm. Oto przykłady:

# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable

# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0

# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary

# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0

Jeśli wolisz tworzyć własne automatyczne skrypty do pobierania tych plików binarnych, mamy coś dla Ciebie. Oferujemy punkty końcowe interfejsu JSON API w najnowszych dostępnych wersjach dla każdego kanału wersji Chrome (stabilny, beta, deweloperski, Canary). Krótkie omówienie najnowszych informacji znajdziesz w panelu dostępności Chrome for Testing.