Chrome for Testing: niezawodne pobieranie i automatyzacja przeglądarki

Dziś mamy przyjemność ogłosić wprowadzenie Chrome for Testing, nowej wersji Chrome, która jest przeznaczona do testowania aplikacji internetowych i automatyzacji. Z tego artykułu dowiesz się, dlaczego zespół Chrome uznał, że jest to potrzebne, oraz poznasz konkretne przykłady, w których Chrome for Testing może być przydatny dla programistów.

Tło

Testowanie w przeglądarce jest kluczowym elementem tworzenia wysokiej jakości stron internetowych, niezależnie od tego, czy jest przeprowadzane ręcznie, czy automatycznie. Jednocześnie skonfigurowanie odpowiedniego środowiska testowania przeglądarek jest notorycznie trudne, do tego stopnia, że jest regularnie zgłaszane jako jeden z największych problemów deweloperów stron internetowych. Dziś ogłaszamy zmianę, która, mamy nadzieję, złagodzi te problemy.

Automatyczne aktualizacje: świetne dla użytkowników, uciążliwe dla deweloperów

Jedną z najważniejszych funkcji Chrome jest możliwość automatycznej aktualizacji. Użytkownicy z przyjemnością korzystają z aktualnej i bezpiecznej wersji przeglądarki, która zawsze zawiera nowoczesne funkcje platformy internetowej, funkcje przeglądarki i poprawki błędów.

Jednak jako programista przeprowadzający pakiet testów kompleksowych możesz mieć zupełnie inną perspektywę:

  • Chcesz uzyskiwać spójne, powtarzalne wyniki w przypadku kolejnych uruchomień testu, ale może się to nie udać, jeśli plik wykonywalny lub binarny przeglądarki zdecyduje się zaktualizować między dwoma uruchomieniami.
  • Chcesz przypiąć konkretną wersję przeglądarki i sprawdzić numer tej wersji w repozytorium kodu źródłowego, aby móc sprawdzać stare commity i gałęzie oraz ponownie uruchamiać testy na pliku binarnym przeglądarki z danego momentu.

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

Pliki binarne przeglądarki z określoną wersją

Oprócz automatycznych aktualizacji możesz mieć też problem ze znalezieniem pliku binarnego Chrome w określonej wersji. Google celowo nie udostępnia pobierania Chrome w wersjach, ponieważ użytkownicy nie powinni przejmować się numerami wersji. Powinni zawsze jak najszybciej otrzymywać aktualizacje do najnowszej wersji. Jest to korzystne dla użytkowników, ale uciążliwe dla deweloperów, którzy muszą odtworzyć raport o błędzie w starszej wersji Chrome.

Bardziej konkretny przykład tego problemu to sytuacja, w której chcesz użyć ChromeDrivera do automatyzacji przeglądarki. Musisz nie tylko pobrać plik binarny Chrome, ale też plik binarny ChromeDriver w odpowiedniej wersji, aby mieć pewność, że oba pliki są ze sobą zgodne.

Wiemy, że wielu programistów pobiera pliki binarne Chromium (nie Chrome), ponieważ nie ma dobrego sposobu na rozwiązanie tych problemów. To podejście ma jednak 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 wersji z wersjami Chrome dostępnymi dla użytkowników. Po trzecie, Chromium różni się od Chrome.

Rozwiązanie: Chrome for Testing

Chrome for Testing to specjalna wersja Chrome przeznaczona do testowania. Nie aktualizuje się automatycznie, jest zintegrowana z procesem wydawania Chrome i jest dostępna w każdej wersji Chrome. Wersja binarna, która jest jak najbardziej zbliżona do zwykłej wersji Chrome, ale nie wpływa negatywnie na przypadki użycia związane z testowaniem.

Aby utworzyć Chrome for Testing, wprowadziliśmy zmiany w bazach kodu Chromium i Chrome oraz skonfigurowaliśmy infrastrukturę do tworzenia i przesyłania tych plików binarnych do publicznie dostępnego zasobnika w taki sam sposób jak w przypadku procesu wydawania Chrome we wszystkich kanałach (stabilnym, beta, deweloperskim i Canary).

Infrastruktura Chrome for Testing otwiera ciekawe możliwości wykraczające poza samą przeglądarkę Chrome. Na przykład trudności, o których wspominaliśmy wcześniej, związane ze znalezieniem pasujących do siebie wersji Chrome i ChromeDriver, można całkowicie wyeliminować, integrując proces wydawania ChromeDriver z infrastrukturą Chrome for Testing. Oprócz rozwiązania tego problemu użytkowników, takie podejście pozwoli też dostosować wydania ChromeDrivera do wydań Chrome i wyeliminować ręczny proces wydawania ChromeDrivera.

Jak uzyskać pliki binarne Chrome for Testing?

Najprostszym sposobem pobrania plików binarnych Chrome for Testing na Twoją platformę jest użycie naszego @puppeteer/browsersnarzędzia wiersza poleceń, które jest dostępne 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 skrypty automatyczne do pobierania tych plików binarnych, mamy dla Ciebie rozwiązanie. Oferujemy punkty końcowe interfejsu JSON API z najnowszymi dostępnymi wersjami w poszczególnych kanałach wersji Chrome (stabilna, beta, deweloperska, Canary). Krótkie podsumowanie jej najnowszego stanu znajdziesz w panelu dostępności Chrome for Testing.