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

Oggi siamo lieti di presentare Chrome for Testing, una nuova versione di Chrome che ha come target i casi d'uso di test di app web e automazione. Questo articolo spiega perché il team di Chrome ritiene che sia necessario e fornisce esempi concreti in cui Chrome for Testing potrebbe essere utile per gli sviluppatori.

Sfondo

I test del browser sono un componente fondamentale per la creazione di 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 da essere indicato in modo coerente come uno dei principali punti critici per gli sviluppatori web. Oggi annunciamo un cambiamento che speriamo di alleviare alcune di queste sofferenze.

Aggiornamento automatico: ottimo per gli utenti, problematico 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 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 tra esecuzioni di test ripetute, ma questo potrebbe non accadere se l'eseguibile o il file binario del browser decide di aggiornarsi tra due esecuzioni.
  • Vuoi bloccare una versione specifica del browser e controllarne il numero nel repository di codice sorgente, in modo da poter controllare i commit e i rami precedenti ed eseguire nuovamente i test sul programma binario del browser da quel momento.

Nulla di tutto ciò è possibile con un programma binario del browser che si aggiorna automaticamente. Di conseguenza, potresti non voler utilizzare la tua normale installazione di Chrome per i test automatici. Questa è la mancata corrispondenza fondamentale tra ciò che è positivo per gli utenti normali del browser e ciò che è utile per gli sviluppatori che eseguono test automatici.

Programmi binari del browser con più versioni

Aggiornamento automatico a parte, potresti anche aver 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 essere interessati ai numeri delle versioni, che dovrebbero sempre essere aggiornati all'ultima versione il prima possibile. È un'ottima soluzione per gli utenti, ma è molto problematica per gli sviluppatori che hanno bisogno di riprodurre una segnalazione di bug in una versione precedente di Chrome.

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

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

Soluzione: Chrome for Testing

Progettata per risolvere questi problemi, Chrome for Testing è una versione dedicata di Chrome che ha come target il caso d'uso dei test, senza aggiornamento automatico, integrata nel processo di rilascio di Chrome e disponibile per ogni release di Chrome. Un programma binario con controllo delle versioni e più vicino possibile al normale Chrome, senza influire negativamente sul caso d'uso di test.

Per la creazione di 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 blocco con la procedura di rilascio di Chrome in tutti i canali (stabile, beta, Dev e Canary).

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

Come faccio ad avere i programmi binari di Chrome for Testing?

Il modo più semplice per scaricare i programmi binari di Chrome for Testing per la tua piattaforma è utilizzare la nostra utilità a riga di comando @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, abbiamo quello 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 sullo stato più recente, consulta la dashboard della disponibilità di Chrome for Testing.