Chrome for Testing

Chrome for Testing è una versione di Chrome specificamente pensata per i casi d'uso di test e automazione delle app web. Questo documento 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 da essere costantemente segnalata come uno dei principali punti critici per gli sviluppatori web.

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 i commit e i 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 programma binario del browser che si aggiorna automaticamente. Di conseguenza, potresti non voler utilizzare l'installazione di Chrome normale per i test automatici. Si tratta della discrepanza fondamentale tra ciò che è positivo per gli utenti del browser normali e ciò che è positivo per gli sviluppatori che eseguono test automatici.

Programmi binari del browser con controllo delle versioni

A parte l'aggiornamento automatico, potresti aver avuto 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 ricevere l'aggiornamento alla versione più recente 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.

Non esistendo un modo efficace per risolvere questi problemi, molti sviluppatori scaricano invece i programmi binari di Chromium (non di 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 dalla procedura di rilascio di Chrome, il che rende impossibile mappare le loro versioni ai rilasci di Chrome reali rivolti agli utenti. 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 programma binario con controllo delle versioni il più simile possibile a Chrome normale, senza influire negativamente sul caso d'uso dei test.

Il logo di Chrome for Testing, ovvero il normale logo di Chrome con la parola "Test" in un rettangolo nero.

Per creare Chrome for Testing, abbiamo apportato modifiche alle codebase di Chromium e Chrome e abbiamo configurato l'infrastruttura per creare e caricare questi programmi 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à menzionate in precedenza relative alla ricerca di un programma 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.