Chrome for Testing

Chrome for Testing to wersja Chrome przeznaczona do testowania aplikacji internetowych i automatyzacji. Z tego dokumentu dowiesz się, dlaczego zespół Chrome uznał, że jest ona potrzebna, oraz poznasz konkretne przykłady, w których Chrome for Testing może Ci się przydać jako deweloperowi.

Tło

Testowanie przeglądarki jest niezbędnym elementem tworzenia wysokiej jakości aplikacji internetowych, niezależnie od tego, czy jest ono przeprowadzane ręcznie, czy automatycznie. Jednocześnie skonfigurowanie odpowiedniego środowiska testowania przeglądarki jest niezwykle trudne, do tego stopnia, że jest to stale zgłaszane jako jeden z największych problemów deweloperów internetowych.

Automatyczna aktualizacja: świetna dla użytkowników, uciążliwa dla deweloperów

Jedną z najbardziej znanych funkcji Chrome jest możliwość automatycznej aktualizacji. Użytkownicy są zadowoleni, że zawsze mają dostęp do aktualnej i bezpiecznej wersji przeglądarki, w tym do nowoczesnych funkcji platformy internetowej, funkcji przeglądarki i poprawek błędów.

Jednak jako deweloper przeprowadzający serię testów kompleksowych możesz mieć zupełnie inne zdanie:

  • Chcesz uzyskiwać spójne i powtarzalne wyniki podczas kolejnych testów, ale może się to nie udać, jeśli plik wykonywalny lub binarny przeglądarki zdecyduje się zaktualizować między 2 testami.
  • Chcesz przypiąć konkretną wersję przeglądarki i sprawdzić jej numer w repozytorium kodu źródłowego, aby móc sprawdzić stare commity i gałęzie oraz ponownie uruchomić testy w pliku binarnym przeglądarki z tego momentu.

Żadne z tych działań nie jest możliwe w przypadku automatycznie aktualizowanego pliku binarnego przeglądarki. W rezultacie możesz nie chcieć używać zwykłej instalacji Chrome do testowania automatycznego. Jest 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 numerem wersji

Oprócz automatycznej aktualizacji możesz mieć też trudności ze znalezieniem pliku binarnego Chrome z konkretną wersją. Google celowo nie udostępnia plików do pobrania Chrome z numerem wersji, ponieważ użytkownicy nie powinni się tym przejmować – powinni jak najszybciej otrzymywać najnowszą wersję. Jest to świetne rozwiązanie dla użytkowników, ale uciążliwe dla deweloperów, którzy muszą odtworzyć raport o błędzie w starszej wersji Chrome.

Bardziej konkretnym przykładem tego problemu jest sytuacja, w której chcesz użyć ChromeDriver do automatyzacji przeglądarki. Nie tylko musisz jakoś pobrać plik binarny Chrome, ale też potrzebujesz pliku binarnego ChromeDriver z odpowiednim numerem wersji, aby zapewnić zgodność obu plików binarnych.

Ponieważ nie ma dobrego sposobu na rozwiązanie tych problemów, wielu deweloperów pobiera pliki binarne Chromium (nie Chrome), chociaż 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 oddzielnie od procesu wydawania Chrome, co uniemożliwia powiązanie ich wersji z rzeczywistymi wersjami Chrome dla użytkowników. Po trzecie, Chromium różni się od Chrome.

Rozwiązanie: Chrome for Testing

Chrome for Testing został zaprojektowany, aby rozwiązać te problemy. Jest to specjalna wersja Chrome przeznaczona do testowania, bez automatycznej aktualizacji, zintegrowana z procesem wydawania Chrome i dostępna w każdej wersji Chrome. Plik binarny z numerem wersji, który jest jak najbardziej zbliżony do zwykłego Chrome, ale nie wpływa negatywnie na testowanie.

Logo Chrome for Testing, czyli zwykłe logo Chrome z napisem „Test” w czarnym prostokącie.

Aby utworzyć Chrome for Testing, wprowadziliśmy zmiany w kodzie Chromium i Chrome oraz skonfigurowaliśmy infrastrukturę do tworzenia i przesyłania tych plików binarnych do publicznie dostępnego zasobnika w synchronizacji z procesem wydawania Chrome we wszystkich kanałach (stabilnym, beta, deweloperskim i Canary).

Infrastruktura Chrome for Testing otwiera ciekawe możliwości poza samym Chrome. Na przykład wspomniane wcześniej trudności ze znalezieniem pasującego pliku binarnego Chrome i ChromeDriver można całkowicie wyeliminować, integrując proces wydawania ChromeDriver z infrastrukturą Chrome for Testing. Oprócz rozwiązania tego problemu, który dotyczy użytkowników, pozwala to też dopasować wersje ChromeDriver do wersji Chrome i wyeliminować ręczny proces wydawania ChromeDriver.