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

Matteo Bianchi
Mathias Bynens

Oggi siamo lieti di annunciare Chrome for Testing, una nuova versione di Chrome che ha come target i casi d'uso di automazione e test delle app web. Questo articolo spiega perché il team di Chrome ha ritenuto necessario che questa funzionalità fosse necessaria e illustra esempi concreti in cui Chrome for Testing potrebbe essere utile per te in qualità di sviluppatore.

Contesto

I test del browser sono un componente fondamentale per creare un'esperienza web di alta qualità, indipendentemente dal fatto che vengano eseguiti manualmente o automaticamente. Allo stesso tempo, configurare un ambiente adeguato per il test del browser è notoriamente difficile, al punto che viene coerentemente segnalato come uno dei principali problemi degli sviluppatori web. Oggi annunciamo una modifica che speriamo allevia alcuni problemi.

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

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

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

  • Vuoi risultati coerenti e riproducibili in esecuzioni di test ripetute, ma questo potrebbe non accadere 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 del codice sorgente, in modo da poter controllare i commit e i rami vecchi ed eseguire nuovamente i test sul programma binario del browser da quel momento in poi.

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

Programmi binari del browser con più versioni

A parte l'aggiornamento automatico, potresti anche avere avuto difficoltà a trovare un programma binario di Chrome con una versione specifica. Google non rende intenzionalmente disponibili i download di Chrome con versione, poiché gli utenti non dovrebbero preoccuparsi dei numeri di versione: devono sempre essere aggiornati all'ultima versione il prima possibile. Questa è un'ottima soluzione per gli utenti, ma complicata per gli sviluppatori che devono riprodurre una segnalazione di bug in una versione precedente di Chrome.

Un esempio più specifico di questo problema è quando si desidera utilizzare ChromeDriver per l'automazione del browser. Non solo devi scaricare un programma binario di Chrome in qualche modo, ma devi anche disporre di un programma binario di ChromeDriver con la versione corrispondente per assicurarti che i due programmi binari siano compatibili.

Poiché non esiste un modo valido per risolvere questi problemi, sappiamo che molti sviluppatori scaricano programmi binari di Chromium (non Chrome), anche se questo approccio presenta alcuni problemi. Innanzitutto, questi file 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 versioni di Chrome vere e rivolte agli utenti. In terzo luogo, Chromium è diverso da Chrome.

La soluzione: Chrome for Testing

Progettata per risolvere questi problemi, Chrome for Testing è una versione dedicata di Chrome destinata al caso d'uso di test, senza aggiornamento automatico, integrata nel processo di rilascio di Chrome e resa disponibile per ogni release di Chrome. Un programma binario con versione che è il più vicino possibile alla versione standard di Chrome senza influire negativamente sul caso d'uso di 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 file binari in un bucket disponibile pubblicamente insieme al 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à che abbiamo menzionato in precedenza riguardo alla ricerca di un file binario di Chrome e ChromeDriver corrispondente possono essere completamente eliminate integrando il processo di rilascio di ChromeDriver nell'infrastruttura di Chrome for Testing. Oltre a risolvere questo problema rivolto agli utenti, questo allinea le versioni di ChromeDriver a quelle di Chrome ed elimina il processo di rilascio manuale di ChromeDriver.

Come posso procurarmi Chrome for Testing programmi binari?

Il modo più semplice per scaricare i file binari di Chrome per i test per la tua piattaforma è utilizzare l'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 programmi binari, abbiamo quello che fa per te. Offriamo endpoint API JSON con le ultime versioni disponibili per ciascun 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.