Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113
Crossbrowser testing con BrowserSwarm | HTML.it
Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Crossbrowser testing con BrowserSwarm

Verificare il codice dei nostri progetti su diverse piattaforme sfruttando il sistema cloud realizzato da Sauce Labs, che permette di gestire in automatico il testing su tutti gli engine e tutte le versioni dei browser.
Verificare il codice dei nostri progetti su diverse piattaforme sfruttando il sistema cloud realizzato da Sauce Labs, che permette di gestire in automatico il testing su tutti gli engine e tutte le versioni dei browser.
Link copiato negli appunti

Nel panorama dello sviluppo con JavaScript per il Web, bisogna oggi considerare sia una molteplicità di framework (jQuery, Backbone o Underscore, giusto per citarne alcuni), sia il moltiplicarsi browser e tutte le relative versioni di questi ultimi.

Quindi permane il problema di sempre, quello di testare il buon funzionamento delle nostre applicazioni su tutti i browser, anche quelli un poì datati.

Possiamo pensare di effettuare test su tutti browser utilizzando macchine virtuali (cosa che ci permette di fare il sito Modern IE per quanto riguarda Internet Explorer). Oltre a questo possiamo servirci di strumenti come BrowserSwarm nato dalla collaborazione di appendTo, Sauce Labs e il team di Internet Explorer.

BrowserSwarm permette di testare il codice dei nostri progetti sfruttando il sistema cloud realizzato da Sauce Labs, che permette di gestire in automatico il testing su tutti gli engine e tutte le versioni dei browser, fornendo anche il supporto di framework come QUnit.

Sfruttando l'integrazione con i repository su Github, il sistema monitora costantemente i fix introdotti: per ogni singolo commit partono nuovi test e, senza dover fare niente, una volta configurato BrowserSwarm testa di volta in volta la nostra codebase in totale autonomia.

Come funziona BrowserSwarm

Gli step da seguire per iniziare sono: l'iscrizione al servizio, il collegamento con Github e l'iscrizione su SauceLabs. Fatto questo potremo aggiungere un progetto di prova e creare il "job" di BrowserSwarm per il nostro progetto.

Iniziamo con l'inserimento del progetto per poi esaminare più a fondo la schermata di configurazione del singolo progetto, per effettuare le personalizzazioni.

Iscrizione e Configurazione

Per l'iscrizione al servizio, dalla home page di BrowserSwarm, clicchiamo su "Add Your Project". Dopo aver inserito email e password basterà confermare: saremo dentro e la schermata che ci accoglierà sarà la seguente:

Figura 1. Il primo login

Il primo login

Effettuato il primo login, possiamo collegare Github

Clicchiamo su "Allow Access", inseriamo la nostra password Github (se richiesto) e confermiamo. Verremo quindi rimandati sulla nostra Dashboard, dove ad accoglierci troveremo (eventualmente) l'elenco dei nostri progetti, pronti per essere testati a dovere.

Come prima prova useremo un progetto già esistente, per semplificarci la vita: come suggerito anche altrove, prenderemo un fork di underscore

A questo punto creiamo un account su https://saucelabs.com/home

Figura 2. Home page di SauceLabs

Home page di SauceLabs

La registrazione è semplice e possiamo optare per un account "Free"

Nota In basso a sinistra c'è la nostra Access Key

Torniamo ora su BrowserSwarm e clicchiamo su Dashboard

Selezionare un progetto su BrowserSwarm.

Anche se abbiamo integrato Github, per il primo test è conveniente fare un'aggiunta manuale, per capire al meglio tutto il meccanismo. Clicchiamo quindi su "Manual Add". Nella casella di testo specifichiamo l'indirizzo del repository su Github: nel mio caso (dal fork fatto prima):

https://github.com/francescomalatesta/underscore

A questo punto, proseguendo, troveremo tre campi di testo, che contengono webhook deploy key

Figura 3. Settings: il menu delle impostazioni

Settings: il menu delle impostazioni

Una volta sistemate queste chiavi e creato il test, torniamo alla Dashboard.

Figura 4. Test in corso... o non ancora?

Test in corso... o non ancora?

L'ingranaggio in corrispondenza del test gira, ma in realtà questo non è ancora attivo: dobbiamo specificare le credenziali per la connessione a SauceLabs, aggiungere uno script necessario allo start e indicare a BrowserSwarm l'ubicazione dei test da effettuare.

Cominciamo dall'impostazione della connessione con SauceLabs

Scendiamo giù e scegliamo qualche browser su cui effettuare i test

Torniamo in alto e clicchiamo su "Save".

Passiamo quindi a "Custom Scripts" Prepare

sed -i.bak 's/phantomjs/true/' package.json && sed -i.bak 's/coffee/true/' package.json && cat package.json && echo "POLYFILLED PHANTOM"

Infine possiamo configurare QUnit

  • il path di riferimento del progetto /
  • il nome del file di test test/index.html

Ora ci siamo davvero: è arrivato il momento di avviare il test!

Il primo test

Ora che è tutto pronto ed opportunamente configurato, il test partirà automaticamente. Basterà tenere sottocontrollo la dashboard, che riporterà gli esiti dei vari test e gli eventuali errori.

Leggere i risultati di un test è molto semplice: prendiamo come esempio quelli proposti dal sito, già effettuati per Underscore e visibili da tutti.

Figura 5. Risultato dei test
Risultato dei test

Un'immagine piuttosto esplicativa della potenza di BrowserSwarm: in una sola tabella tutti i risultati di tutti i test effettuati. I segni di spunta permettono di capire velocemente dove e cosa è andato storto, per garantire la massima semplicità di interpretazione.

La cosa non si ferma qui, ovviamente: cliccando in corrispondenza dei singoli test, sulla colonna a sinistra, si potranno esplorare tutti i dettagli dei singoli job. Prendiamo come esempio il terzo test, che restituisce un errore in corrispondeza di Firefox 19 (639/640).

Figura 6. Dettaglio del risultato dei test

Dettaglio del risultato dei test

Anche qui la schermata è di semplice lettura: tutti gli errori

Conclusioni

In conclusione, BrowserSwarm ha un sacco di potenziale. Si tratta di un prodotto ancora in beta, che per ora però si è rivelato utile e facilmente configurabile. Ottimo il livello di assistenza: contattando il team degli sviluppatori tramite twitter (@browserswarm), la risposta è quasi immediata. Da non sottovalutare.

Ti consigliamo anche