I test sono importanti. Si tratta di un passaggio fondamentale prima di rilasciare ciò che hai creato per gli utenti, che si tratti di un intero sito o di un'applicazione o di una nuova funzionalità, per verificare che funzioni come previsto. Tuttavia, molti test vengono ancora eseguiti manualmente, con colleghi o test engineer che devono controllare la nuova funzionalità e segnalare i problemi.
Sebbene questo test manuale possa mostrare determinate classi di problemi, può perderne molti altri. Le persone che eseguono i test potrebbero non considerare i casi limite o non riuscire completamente a testare un determinato percorso nell'app. Inoltre, non dispongono di tutte le informazioni di cui disponi quando scrivi il codice e non conoscono i problemi specifici per i quali hai incluso il codice. E, con il passare del tempo e l'aggiunta di nuove funzionalità, torneranno a testare tutte le funzionalità che funzionavano in precedenza per assicurarsi che le modifiche non le abbiano danneggiate?
Ecco perché il team di Chrome crede nell'importanza dei test automatici. Utilizzando una suite di test che verifica in modo affidabile e ripetuto la presenza di errori nella funzionalità, puoi assicurarti che ogni piccolo dettaglio venga testato, ora e in seguito allo sviluppo futuro. Le tue conoscenze in qualità di sviluppatore di una funzionalità sono racchiuse in un test.
Tuttavia, sappiamo che i test automatici possono essere complicati. Ecco perché il team di Chrome fornisce le seguenti indicazioni e strumenti per semplificare al massimo la procedura.
Burattinaio
Puppeteer è una libreria Node.js. Ti consente di automatizzare Chrome, Chromium e Firefox con un'API di alto livello facile da usare.
Sebbene questa API fosse originariamente basata sul protocollo Chrome DevTools, l'obiettivo è far sì che il nuovo protocollo WebDriver BiDi avanzato diventi 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 dell'automazione e ne consente molti di nuovi ed è compatibile con più browser.
.Ma non c'è bisogno di aspettare. L'API di Puppeteer consente già molti scenari di automazione, che miglioreranno ulteriormente con WebDriver BiDi. Dai test alla scansione visiva e all'automazione dei processi, puoi fare molto con funzionalità come le interazioni con le pagine, l'intercettazione delle richieste e gli screenshot. Puoi persino utilizzarlo per testare i tuoi modelli di IA web nel cloud utilizzando WebGPU e WebGL.
Puppeteer viene utilizzato anche da strumenti come WebdriverIO, un framework completo per i test dei browser, e Privacy Sandbox Analysis Tool, che ti consente 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 esiste una finestra del browser effettiva mentre l'automazione è in esecuzione.
Ma sapevi che la modalità headless di Chrome non era solo Chrome senza finestra, ma in realtà una versione di Chrome gestita completamente separatamente? Per molto tempo questo ha generato confusione e problemi difficili da individuare.
A partire da Chrome 112 abbiamo introdotto una nuova modalità headless, ora basata sullo stesso codebase del normale Chrome. In questo modo, non solo viene ridotta la confusione precedente, ma vengono anche offerte funzionalità che prima non erano possibili, come l'utilizzo di estensioni durante l'automazione.
Puppeteer utilizza questa nuova modalità headless come predefinita dalla versione 22. Se utilizzi Chrome Headless tramite altre soluzioni di automazione, puoi forzare la nuova modalità headless con l'opzione a riga di comando --headless=new
.
Sebbene la nuova modalità headless di Chrome sia più potente, non è leggera come la vecchia modalità headless. Se hai risorse molto 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, devi avere un controllo granulare sull'ambiente di test: il sistema operativo, il browser e la versione del browser. Con l'aggiornamento automatico di Chrome, questo può essere difficile.
Per questo motivo abbiamo creato Chrome per i test, una versione di Chrome senza aggiornamenti automatici, rilasciata insieme a ogni versione di Chrome per tutti i principali sistemi operativi, accessibile da un archivio con versioni. In questo modo puoi eseguire i tuoi flussi di lavoro di automazione su una versione specifica di Chrome senza troppi problemi.
Puoi accedere ai binari di Chrome per i test dalla dashboard di disponibilità di Chrome per i test, 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 parte del lavoro che il nostro team sta attualmente svolgendo per semplificare al massimo l'automazione del browser e l'esecuzione dei test. Inoltre, gli strumenti correlati, come DevTools Recorder, ti supportano nella creazione dei test: registra un flusso utente in Chrome e riproducilo in Puppeteer.
Scopri i test su web.dev
Gli strumenti trattati in questo post ti aiuteranno a migliorare i test automatici. Tuttavia, se sei alle prime armi, può sembrare molto da capire e imparare. Pertanto, abbiamo creato un nuovo corso di 10 moduli, Impara a eseguire test su web.dev. Questo corso approfondito illustra i concetti fondamentali dei test, dove e come vengono eseguiti, i tipi di test e cosa testare. È un ottimo punto di partenza per il tuo percorso di test. Una volta acquisite le nozioni di base, non esitare a consultare la nostra raccolta sull'automazione dei test, con approfondimenti e suggerimenti pratici su domande di test più specifiche.