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

Oggi siamo felici di annunciare Chrome for Testing, una nuova versione di Chrome pensata appositamente per i casi d'uso di test e automazione delle app web. Questo articolo spiega perché il team di Chrome ha ritenuto necessario questo strumento e illustra esempi concreti in cui Chrome for Testing può essere utile agli sviluppatori.

Sfondo

Il test del browser è un componente fondamentale per creare un'esperienza web di alta qualità, indipendentemente dal fatto che venga eseguito manualmente o automaticamente. Allo stesso tempo, configurare un ambiente di test del browser adeguato è notoriamente difficile, tanto che viene costantemente segnalato come uno dei principali problemi degli sviluppatori web. Oggi annunciamo una modifica che speriamo possa alleviare in parte questo problema.

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

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

Tuttavia, in qualità di sviluppatore che esegue una suite di test end-to-end, potresti avere una prospettiva completamente diversa:

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

Niente di tutto questo è possibile con un binario del browser con aggiornamento automatico. Di conseguenza, potresti non voler utilizzare la tua normale installazione di Chrome per i test automatici. Si tratta della mancata corrispondenza fondamentale tra ciò che è positivo per gli utenti regolari del browser e ciò che è positivo per gli sviluppatori che eseguono test automatizzati.

Programmi binari del browser con controllo delle versioni

A parte l'aggiornamento automatico, potresti anche aver avuto difficoltà a trovare un binario Chrome con una versione specifica. Google non rende intenzionalmente disponibili i download di Chrome con controllo delle versioni, in quanto gli utenti non devono preoccuparsi dei numeri di versione, ma devono sempre eseguire l'aggiornamento all'ultima versione il prima possibile. Questo è un vantaggio per gli utenti, ma un problema per gli sviluppatori che devono riprodurre una segnalazione di bug in una versione precedente di Chrome.

Un esempio più specifico di questo problema si verifica quando vuoi utilizzare ChromeDriver per l'automazione del browser. Non solo devi scaricare un binario di Chrome, ma anche un binario di ChromeDriver con la versione corrispondente per garantire la compatibilità dei due binari.

Poiché non esiste un modo efficace per risolvere questi problemi, sappiamo che molti sviluppatori scaricano invece i file binari di Chromium (non di Chrome), anche se questo approccio presenta alcuni difetti. Innanzitutto, questi binari di Chromium non sono disponibili in modo affidabile su tutte le piattaforme. In secondo luogo, vengono create e pubblicate separatamente dal processo di rilascio di Chrome, il che rende impossibile mappare le loro versioni alle versioni di Chrome reali 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 pensata per i test, senza aggiornamento automatico, integrata nel processo di rilascio di Chrome e disponibile per ogni release di Chrome. Un binario con controllo delle versioni il più vicino possibile a Chrome normale senza influire negativamente sul caso d'uso dei test.

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

L'infrastruttura di Chrome for Testing offre opportunità interessanti al di là di Chrome stesso. Ad esempio, le difficoltà che abbiamo menzionato in precedenza relative alla ricerca di un binario Chrome e ChromeDriver corrispondente possono essere completamente eliminate integrando la procedura di rilascio di ChromeDriver nell'infrastruttura di Chrome for Testing. Oltre a risolvere questo problema per gli utenti, questo allineamento consente di allineare le release di ChromeDriver a quelle di Chrome ed elimina la procedura manuale di rilascio di ChromeDriver.

Come posso ottenere i binari di Chrome for Testing?

Il modo più semplice per scaricare i file binari di Chrome for Testing per la tua piattaforma è utilizzare la nostra @puppeteer/browsersutilità da riga di comando, 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 script automatici personalizzati per scaricare questi file binari, abbiamo la soluzione che fa per te. Offriamo endpoint API JSON con le ultime versioni disponibili per canale di rilascio di Chrome (stabile, beta, Dev, Canary). Per una rapida panoramica dello stato più recente, consulta la dashboard di disponibilità di Chrome for Testing.