Strumenti di Chrome per test automatici e senza problemi

Eseguire test è importante. Si tratta di un passaggio fondamentale prima di rendere disponibile agli utenti ciò che hai creato, che si tratti di un intero sito, di un'applicazione o di una nuova funzionalità, per verificare che funzioni come previsto. Tuttavia, molti test vengono eseguiti manualmente e i colleghi o i test engineer hanno chiesto di dare un'occhiata alla nuova funzionalità e di segnalare i problemi.

Matthias Rohmer
Matthias Rohmer

Sebbene questi test manuali possano individuare determinate classi di problemi, possono mancare molti altri. Le persone che eseguono il test potrebbero sfuggire ai casi limite o non riuscire completamente a testare un particolare percorso attraverso l'app. Inoltre, non dispongono di tutte le informazioni di cui disponi al momento della scrittura del codice e non sono a conoscenza dei problemi specifici che hai incluso di codice da evitare. E con il passare del tempo e l'aggiunta di nuove funzionalità, torneranno a ripetere tutto ciò che già funzionava prima, per assicurarsi che le modifiche non le protraggano?

Ecco perché il team di Chrome crede nell'importanza dei test automatici. Utilizzando una suite di test che verifica ripetutamente e in modo affidabile la funzionalità per rilevare eventuali danni, puoi avere la certezza che ogni piccolo dettaglio venga testato, ora e dopo lo sviluppo futuro. Le tue conoscenze in qualità di sviluppatore di una funzionalità vengono racchiuse in un test.

Tuttavia, sappiamo che i test automatici possono essere impegnativi. Ecco perché il team di Chrome fornisce i seguenti strumenti e indicazioni per aiutarti a semplificare il più possibile le operazioni.

Burattinaio

Puppeteer è una libreria Node.js. Consente di automatizzare Chrome, Chromium e Firefox con un'API di alto livello facile da usare.

Sebbene questa API fosse basata originariamente sul protocollo Chrome DevTools, l'obiettivo è rendere il nuovo e avanzato protocollo WebDriver BiDi la base di Puppeteer entro la fine dell'anno. WebDriver BiDi, creato in collaborazione con tutti i principali fornitori di browser, semplifica molti casi d'uso di automazione e ne consente molti di nuovi ed è compatibile con più browser.

Ma non c'è bisogno di aspettare. Attualmente l'API di Puppeteer consente molti casi d'uso di automazione, che miglioreranno solo con WebDriver BiDi. Dai test alla scansione visiva e all'automazione dei processi, puoi fare molto con funzionalità come le interazioni con le pagine, le richieste di intercettazione e gli screenshot. Puoi anche utilizzarlo per testare i tuoi modelli di IA web nel cloud utilizzando WebGPU e WebGL.

Puppeteer è utilizzato anche da strumenti come WebdriverIO, un framework completo di test del browser, e lo strumento di analisi Privacy Sandbox, che consentono di comprendere meglio l'utilizzo dei cookie e dei dati utente sul tuo sito.

Chrome headless

Se hai mai automatizzato Chrome utilizzando Puppeteer, potresti aver scoperto che non viene visualizzata alcuna finestra del browser durante l'esecuzione dei test. Per impostazione predefinita, Puppeteer avvia Chrome in modalità Headless. Ciò significa che non viene visualizzata alcuna finestra del browser mentre è in esecuzione l'automazione.

Ma sapevi che la modalità headless di Chrome non era solo Chrome-senza finestra, ma in realtà una versione completamente gestita separatamente di Chrome? Per molto tempo ha creato confusione, oltre a problemi e problemi difficili da individuare.

A partire da Chrome 112 abbiamo introdotto una nuova modalità headless, ora basata sullo stesso codebase del browser Chrome standard. Ciò non riduce solo la confusione precedente, ma offre anche funzionalità che prima non erano possibili, come l'utilizzo delle estensioni durante l'automazione.

Puppeteer utilizza questa nuova modalità headless come impostazione predefinita dalla versione 22. Se utilizzi Chrome Headless con altre soluzioni di automazione, puoi forzare la nuova modalità headless con l'opzione della riga di comando --headless=new.

La nuova modalità headless di Chrome è più potente, ma non è leggera come la vecchia. Se le tue risorse sono estremamente limitate o non hai bisogno di tutte le funzionalità di Chrome, puoi utilizzare la vecchia modalità headless come chrome-headless-shell.

Chrome for Testing

Durante il test, hai bisogno di un controllo granulare sull'ambiente di test: sistema operativo, browser e versione del browser. Con l'aggiornamento automatico di Chrome questo può risultare difficile.

Ecco perché abbiamo creato Chrome for Testing, una versione di Chrome senza aggiornamento automatico, rilasciata insieme a ogni versione di Chrome e per ogni principale sistema operativo, accessibile da un archivio sottoposto al controllo delle versioni. In questo modo puoi eseguire i flussi di lavoro di automazione su una versione specifica di Chrome senza problemi.

Puoi accedere ai programmi binari di Chrome for Testing dalla dashboard della disponibilità di Chrome for Testing, dall'API JSON o con l'utilità a riga di comando Puppeteer.


Puppeteer, la modalità headless aggiornata di Chrome e Chrome for Testing sono solo una parte del lavoro che il nostro team sta attualmente svolgendo per semplificare il più possibile l'automazione del browser e l'esecuzione dei test. E gli strumenti correlati, come Registratore di DevTools, supportano la creazione di test: registrano un flusso utente in Chrome e riproducilo in Puppeteer.

Scopri i test su web.dev

Gli strumenti illustrati in questo post ti aiuteranno a migliorare i test automatici. Ma se sei appena all'inizio può sembrare molto da capire e imparare. Per questo motivo, abbiamo creato un nuovo corso di 10 moduli: Impara a testare il sito web.dev. Questo corso approfondito tratta i concetti fondamentali dei test, dove e come vengono eseguiti i test, i tipi di test e su cosa testare effettivamente. È un ottimo punto di partenza per il tuo percorso di test. Una volta acquisite le nozioni fondamentali, passa alla raccolta Test Automation con approfondimenti e suggerimenti pratici su domande di test più specifiche.