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

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

Sfondo

Il test del browser è 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, la configurazione di un ambiente di test del browser adeguato è notoriamente difficile, tanto che viene costantemente segnalata come uno dei principali punti critici per gli sviluppatori web. Oggi annunciamo una modifica che, si spera, allevierà 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 file 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 estrarre commit e branch precedenti ed eseguire di nuovo i test sul file binario del browser a partire da quel momento.

Niente di tutto questo è possibile con un file binario del browser che si aggiorna automaticamente. Di conseguenza, potresti non voler utilizzare l'installazione regolare di Chrome per i test automatici. Questa è la discrepanza fondamentale tra ciò che è positivo per gli utenti regolari del browser e ciò che è positivo per gli sviluppatori che eseguono test automatici.

File binari del browser con controllo delle versioni

A parte l'aggiornamento automatico, potresti aver riscontrato difficoltà a trovare un file binario di Chrome con una versione specifica. Google non rende intenzionalmente disponibili i download di Chrome con controllo delle versioni, poiché gli utenti non devono preoccuparsi dei numeri di versione: devono sempre eseguire l'aggiornamento all'ultima versione il prima possibile. Questo è ottimo per gli utenti, ma problematico 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 in qualche modo un file binario di Chrome, ma ti serve anche un file binario di ChromeDriver con la versione corrispondente per garantire la compatibilità dei due file 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 file binari di Chromium non sono disponibili in modo affidabile su tutte le piattaforme. In secondo luogo, vengono creati e pubblicati separatamente dalla procedura di rilascio di Chrome, il che rende impossibile mappare le loro versioni ai rilasci di Chrome rivolti agli utenti reali. In terzo luogo, Chromium è diverso da Chrome.

La soluzione: Chrome for Testing

Progettato per risolvere questi problemi, Chrome for Testing è una versione dedicata di Chrome destinata al caso d'uso dei test, senza aggiornamento automatico, integrata nella procedura di rilascio di Chrome e disponibile per ogni rilascio di Chrome. Un file binario con controllo delle versioni il più simile possibile a Chrome normale, senza influire negativamente sul caso d'uso dei test.

Per creare Chrome for Testing, abbiamo apportato modifiche alle codebase di Chromium e Chrome e abbiamo 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 oltre a Chrome stesso. Ad esempio, le difficoltà che abbiamo menzionato in precedenza relative alla ricerca di un file binario di 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 rivolto agli utenti, questo allinea anche i rilasci di ChromeDriver a quelli di Chrome ed elimina la procedura di rilascio manuale di ChromeDriver.

Come faccio a ottenere i file 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/browsers utilità 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 i tuoi script automatici per scaricare questi file binari, non preoccuparti. 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.