Chrome for Testing: niezawodne pobieranie i automatyzacja przeglądarki

Z przyjemnością przedstawiamy Chrome for Testing – nowy rodzaj Chrome, który jest przeznaczony przede wszystkim do testowania aplikacji internetowych i w automatyzacji. W tym artykule wyjaśniamy, dlaczego według zespołu Chrome jest to konieczne, i przedstawiliśmy konkretne przykłady, w których Chrome for Testing może okazać się przydatne dla programistów.

Tło

Testowanie przeglądarki jest kluczowym elementem tworzenia witryn o wysokiej jakości, niezależnie od tego, czy odbywa się to ręcznie, czy automatycznie. Jednocześnie utworzenie odpowiedniego środowiska testowego przeglądarki jest niezwykle trudne, dlatego jest ono spójnie zgłaszane jako jeden z największych przeszkód dla programistów stron internetowych. Dzisiaj ogłaszamy zmianę, która, mamy nadzieję, łagodzić ten problem.

Automatyczna aktualizacja: przydatna dla użytkowników, uciążliwa dla programistów

Jedną z najciekawszych funkcji Chrome jest możliwość automatycznej aktualizacji. Użytkownicy są zadowoleni, wiedząc, że korzystają z najnowszej i bezpiecznej przeglądarki z nowoczesnymi funkcjami platformy internetowej, funkcjami przeglądarki i poprawkami.

Jednak jako programista, który przeprowadza zestaw kompleksowych testów, możesz spojrzeć na sprawę z innej perspektywy:

  • Chcesz, aby wyniki były spójne, możliwe do odtworzenia podczas kolejnych testów, ale może się tak zdarzyć, jeśli plik wykonywalny przeglądarki lub plik binarny podejmie decyzję o aktualizacji między 2 uruchomieniami.
  • Chcesz przypiąć konkretną wersję przeglądarki i sprawdzić jej numer w repozytorium kodu źródłowego, aby móc przejrzeć stare zatwierdzenia i gałęzie oraz ponownie uruchomić testy na pliku binarnym przeglądarki w tamtym momencie.

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

Wersjonowane pliki binarne przeglądarki

Poza tym automatyczne aktualizacje mogą sprawiać problemy ze znalezieniem pliku binarnego Chrome z konkretną wersją. Google celowo nie udostępnia wersji Chrome do pobrania, ponieważ użytkownicy nie powinni zwracać uwagi na numery wersji i zawsze powinni jak najszybciej aktualizować się do najnowszej wersji. Jest to doskonałe rozwiązanie dla użytkowników, ale uciążliwe dla programistów, którzy chcą odtworzyć raport o błędzie w starszej wersji Chrome.

Konkretnym przykładem tego problemu jest sytuacja, gdy chcesz użyć ChromeDriver do automatyzacji przeglądarki. Aby mieć pewność, że oba pliki binarne są zgodne, musisz nie tylko pobrać plik binarny Chrome. Potrzebujesz też pliku binarnego ChromeDriver z odpowiednimi wersjami.

Wiemy, że nie ma dobrego sposobu na rozwiązanie tych problemów, dlatego wielu deweloperów pobiera pliki binarne Chromium (nie Chrome), choć takie rozwiązanie ma pewne błędy. Po pierwsze, te pliki binarne Chromium są niezawodnie dostępne na wszystkich platformach. Po drugie, są tworzone i publikowane niezależnie od procesu wydawania Chrome, co uniemożliwia mapowanie ich z powrotem na prawdziwe wersje 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 Chrome stworzonej z myślą o testowaniu, stworzonym z myślą o testowaniu. Jest on zintegrowany z procesem tworzenia wersji Chrome i nie wymaga automatycznych aktualizacji. Jest dostępny w każdej wersji Chrome. Wersjonowany plik binarny, który jest jak najbardziej zbliżony do zwykłej przeglądarki Chrome i nie wpływa negatywnie na wersję testową.

Aby utworzyć Chrome for Testing, wprowadziliśmy zmiany w bazach kodu Chromium i Chrome oraz skonfigurowaliśmy infrastrukturę umożliwiającą tworzenie i przesyłanie tych plików binarnych do publicznie dostępnego zasobnika, blokując je wraz z procesem wydawania Chrome we wszystkich kanałach (stabilnej, beta, deweloperskiej i Canary).

Infrastruktura wokół Chrome for Testing otwiera też inne ciekawe możliwości. Na przykład opisane wcześniej trudności związane ze znalezieniem pasującego pliku binarnego Chrome i ChromeDriver można całkowicie wyeliminować przez integrację procesu tworzenia wersji ChromeDriver z infrastrukturą Chrome for Testing. To rozwiązanie nie tylko rozwiązuje problem użytkownika, ale także dopasowuje wersję ChromeDriver do wersji Chrome i eliminuje proces ręcznego publikowania 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 pod adresem 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 takich plików binarnych, mamy coś dla Ciebie. Oferujemy punkty końcowe interfejsu API JSON z najnowszymi dostępnymi wersjami w poszczególnych kanałach wersji Chrome (stabilnej, beta, deweloperskiej, Canary). Aby zobaczyć krótkie omówienie najnowszego stanu, otwórz panel dostępności Chrome for Testing.