Chrome for Testing: niezawodne pobieranie i automatyzacja przeglądarki

Dziś 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 uznał to za konieczne. Przedstawiliśmy konkretne przykłady korzyści, które mogą przynieść programistom Chrome for Testing.

Wprowadzenie

Testowanie przeglądarki to kluczowy element tworzenia wysokiej jakości usług internetowych, niezależnie od tego, czy odbywa się to ręcznie czy automatycznie. Jednocześnie stworzenie odpowiedniego środowiska do testowania przeglądarki jest niezwykle trudne, dlatego jest konsekwentnie zgłaszane jako najważniejszy problem dla programistów stron internetowych. Dzisiaj ogłaszamy zmianę, która być może rozwiąże ten problem.

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

Jedną z najważniejszych funkcji Chrome jest możliwość automatycznego aktualizowania. Użytkownicy cieszą się, że korzystają z najnowszej i bezpiecznej wersji przeglądarki, która cały czas zawiera nowoczesne funkcje Web Platform, funkcje przeglądarki i poprawki błędów.

Jednak jako deweloper przeprowadzający zestaw kompleksowych testów masz zupełnie inny punkt widzenia:

  • Chcesz uzyskiwać spójne i powtarzalne wyniki w wielu wielokrotnych testach, ale może się to zdarzyć, jeśli plik wykonywalny lub plik binarny przeglądarki postanowi się zaktualizować w przerwach między 2 uruchomieniami.
  • Musisz przypiąć konkretną wersję przeglądarki i sprawdzić numer wersji w repozytorium kodu źródłowego, aby sprawdzić stare zatwierdzenia i gałęzie oraz od tego momentu ponownie przeprowadzić testy dotyczące pliku binarnego przeglądarki.

Nie jest to możliwe w przypadku automatycznie aktualizowanego pliku binarnego przeglądarki. Dlatego możesz nie chcieć używać zwykłej instalacji Chrome do automatycznego testowania. To zasadnicza niezgodność między tym, co dobre dla zwykłych użytkowników przeglądarki, a co dobre dla programistów przeprowadzających testy automatyczne.

Pliki binarne przeglądarki z wersjami

Oprócz automatycznych aktualizacji może Ci być też trudno znaleźć plik binarny Chrome o konkretnej wersji. Google celowo nie udostępnia plików do pobrania z Chrome w różnych wersjach, ponieważ użytkownicy nie powinni przejmować się numerami wersji – zawsze powinni jak najszybciej aktualizować przeglądarkę do najnowszej wersji. Jest to przydatne 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 do automatyzacji przeglądarki. Nie tylko pobierz plik binarny Chrome, ale też plik binarny ChromeDriver z odpowiednią wersją, aby mieć pewność, że oba pliki są zgodne.

Ponieważ nie ma dobrego sposobu rozwiązania tych problemów, wiemy, że wielu deweloperów pobiera pliki binarne Chromium (nie Chrome), choć to podejście ma kilka wad. 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 publikowania Chrome, co uniemożliwia powiązanie ich wersji z prawdziwymi wersjami Chrome dla użytkowników. Po trzecie, Chromium różni się od Chrome.

Rozwiązanie: Chrome for Testing

Chrome for Testing to specjalny rodzaj przeglądarki, który został opracowany z myślą o rozwiązaniu tych problemów i jest zintegrowany z procesem publikowania wersji Chrome. Jest on przeznaczony na potrzeby testów i nie ma automatycznych aktualizacji. Jest on dostępny w przypadku każdej wersji Chrome. Wersja binarna z wersją, która jest jak najbardziej zbliżona do normalnej wersji Chrome bez negatywnego wpływu na przypadek użycia podczas testów.

W ramach stworzenia Chrome for Testing wprowadziliśmy zmiany w bazach kodów Chromium i Chrome, a także skonfigurowaliśmy infrastrukturę umożliwiającą kompilowanie i przesyłanie tych plików binarnych do publicznie dostępnego zasobnika w ramach procesu publikowania wersji Chrome we wszystkich kanałach (stabilnej, beta, deweloperskiej i Canary).

Infrastruktura związana z Chrome for Testing otwiera przed Tobą interesujące możliwości poza samą przeglądarką Chrome. Na przykład problemy, o których pisaliśmy wcześniej w przypadku znalezienia pasującego pliku binarnego Chrome i ChromeDriver, można całkowicie wyeliminować, integrując proces wydawania wersji ChromeDriver z infrastrukturą Chrome for Testing. Wyeliminuje to problem, który boryka się z problemem użytkownika, oraz dostosowuje wersje ChromeDriver do wersji Chrome i eliminuje proces ręcznego zwalniania sterownika 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 kilka przykładów:

# 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 z najnowszymi wersjami dla każdego kanału wersji Chrome (stabilny, beta, deweloperski, Canary). Krótkie omówienie najnowszego stanu znajdziesz w panelu dostępności Chrome for Testing.