Chrome for Testing: download affidabili per l'automazione del browser

Oggi siamo felici di annunciare Chrome for Testing, una nuova versione di Chrome che si rivolge nello specifico ai casi d'uso di automazione e test delle app web. Questo articolo spiega perché il team di Chrome ha ritenuto che fosse necessario farlo e illustra esempi concreti in cui Chrome for Testing potrebbe essere utile per te in qualità di sviluppatore.

Contesto

I test del browser sono fondamentali per creare un'esperienza web di alta qualità, indipendentemente dal fatto che vengano eseguiti manualmente o automaticamente. Allo stesso tempo, è notoriamente difficile configurare un ambiente di test del browser adeguato, talmente tanto che viene segnalato in modo coerente come uno dei principali problemi degli sviluppatori web. Oggi annunciamo una modifica che speriamo possa alleviare un po' di questo problema.

Aggiornamento automatico: ottimo per gli utenti, difficile per gli sviluppatori

Una delle funzionalità più importanti di Chrome è la possibilità di aggiornarsi automaticamente. Gli utenti sono felici di sapere che utilizzano sempre una versione aggiornata e sicura del browser che include le moderne funzionalità della piattaforma Web, le funzionalità del browser e le correzioni di bug.

Tuttavia, in qualità di sviluppatore che esegue una suite di test end-to-end, potresti avere un punto di vista completamente diverso:

  • Vuoi risultati coerenti e riproducibili su esecuzioni di test ripetute, ma questo potrebbe non verificarsi se l'eseguibile o il programma binario del browser decide di aggiornarsi tra due esecuzioni.
  • Vuoi bloccare una versione specifica del browser e controllare il numero di versione nel repository di codice sorgente, in modo da poter controllare i vecchi commit e rami ed eseguire nuovamente i test sul programma binario del browser da quel momento.

Niente di tutto ciò è possibile con un programma binario del browser che si aggiorna automaticamente. Di conseguenza, ti consigliamo di non utilizzare la normale installazione di Chrome per i test automatici. Si tratta della mancata corrispondenza fondamentale tra ciò che è positivo per i normali utenti del browser e ciò che non va bene per gli sviluppatori che eseguono test automatici.

Programmi binari del browser con più versioni

A parte l'aggiornamento automatico, potresti anche aver avuto difficoltà a trovare un file binario di Chrome con una versione specifica. Google non rende intenzionalmente disponibili i download di Chrome sottoposti al controllo delle versioni, dato che gli utenti non dovrebbero preoccuparsi dei numeri di versione: devono sempre eseguire l'aggiornamento alla versione più recente il prima possibile. Si tratta di una funzionalità molto utile per gli utenti, ma problematica per gli sviluppatori che devono riprodurre una segnalazione di bug in una versione precedente di Chrome.

Un esempio più specifico di questo problema è quando vuoi utilizzare ChromeDriver per l'automazione del browser. Non solo è necessario scaricare un file binario di Chrome in qualche modo, ma è necessario anche un file binario di ChromeDriver con versione corrispondente per garantire che i due programmi binari siano compatibili.

Poiché non esiste un modo valido per risolvere questi problemi, sappiamo che molti sviluppatori scaricano programmi binari Chromium (non Chrome), anche se questo approccio presenta alcuni difetti. Innanzitutto, questi programmi binari di Chromium non sono disponibili in modo affidabile su tutte le piattaforme. In secondo luogo, vengono creati e pubblicati separatamente dal processo di rilascio di Chrome, rendendo impossibile la mappatura delle loro versioni a release reali di Chrome rivolte agli utenti. Terzo, Chromium è diverso da Chrome.

La soluzione: Chrome for Testing

Progettato per risolvere questi problemi, Chrome for Testing è una versione dedicata di Chrome destinata ai casi d'uso di test, senza aggiornamento automatico, integrata nel processo di rilascio di Chrome e disponibile per ogni versione di Chrome. Un programma binario con controllo delle versioni che sia il più vicino possibile a quello di Chrome standard senza influire negativamente sul caso d'uso del test.

Per creare Chrome for Testing, abbiamo apportato modifiche ai codebase di Chromium e Chrome e abbiamo configurato l'infrastruttura per creare e caricare questi codici binari in un bucket disponibile pubblicamente seguendo il processo di rilascio di Chrome su tutti i canali (stabile, beta, Dev e Canary).

L'infrastruttura relativa a Chrome for Testing offre opportunità interessanti che vanno oltre Chrome. Ad esempio, le difficoltà di cui abbiamo parlato in precedenza riguardo alla ricerca di un programma binario di Chrome e ChromeDriver corrispondente possono essere eliminate completamente integrando il processo di rilascio di ChromeDriver nell'infrastruttura Chrome for Testing. Oltre a risolvere questo problema per l'utente, questo allinea anche le release di ChromeDriver con quelle di Chrome ed elimina il processo di rilascio manuale di ChromeDriver.

Come faccio a scaricare Chrome per il test dei file binari?

Il modo più semplice per scaricare i file binari di Chrome per il test per la tua piattaforma consiste nell'utilizzare la nostra utilità a riga di comando di @puppeteer/browsers, disponibile tramite npm. Ecco alcuni esempi:

# 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

Se preferisci creare i tuoi script automatici per scaricare questi file binari, ci pensiamo noi. Offriamo endpoint API JSON con le ultime versioni disponibili per ogni canale di rilascio di Chrome (stabile, beta, Dev, Canary). Per una rapida panoramica dello stato più recente, consulta la dashboard della disponibilità di Chrome for Testing.