Chrome for Testing: niezawodne pobieranie i automatyzacja przeglądarki

Dziś z przyjemnością ogłaszamy wprowadzenie Chrome do testowania, nowej wersji Chrome, która jest przeznaczona specjalnie 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 witryny, niezależnie od tego, czy jest przeprowadzane ręcznie, czy automatycznie. Jednocześnie skonfigurowanie odpowiedniego środowiska testowania przeglądarek jest niezwykle 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 deweloper przeprowadzający zestaw testów kompleksowych możesz mieć zupełnie inne zdanie:

  • Chcesz uzyskiwać spójne, powtarzalne wyniki w kolejnych testach, ale może się to nie udać, jeśli plik wykonywalny lub binarny przeglądarki zdecyduje się zaktualizować między dwoma testami.
  • 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ą

Poza automatyczną aktualizacją 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 szczegółowy 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 do testowania, 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 plików binarnych Chrome i ChromeDriver, można całkowicie wyeliminować, integrując proces wydawania ChromeDriver z infrastrukturą Chrome do testowania. 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?

Najłatwiejszym sposobem pobrania plików binarnych Chrome do testowania na Twojej platformie 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 utworzyć własne skrypty automatyczne do pobierania tych plików binarnych, możesz to zrobić. Oferujemy punkty końcowe interfejsu JSON API z najnowszymi dostępnymi wersjami w poszczególnych kanałach wersji Chrome (stabilna, beta, deweloperska, Canary). Aby uzyskać szybki przegląd najnowszego stanu, zapoznaj się z panelem dostępności Chrome for Testing.