Articles

Che cosa è goniometro?

Goniometro

Secondo la prima e basilare architettura di app web, un server a causa della costante ricarica dei contenuti e dell’enorme scambio di dati, è più comune per i siti Web statici rispetto alle app web reali costituite da logica di costruzione di pagine Web e logica di business interagisce con un client inviando una pagina HTML completa. Per visualizzare un aggiornamento, l’utente deve ricaricare completamente la pagina o, in altre parole, far inviare al client una richiesta di una pagina HTML al server e caricare nuovamente l’intero codice. Guarda il diagramma dell’architettura dell’applicazione Web di questo tipo.

Legacy CSA

Oggi molte aziende passano dalla tradizionale architettura Client-Server alla moderna, dove dopo il caricamento della prima pagina, tutte le interazioni con il server avvengono attraverso chiamate AJAX. Queste chiamate AJAX restituiscono dati—non markup-di solito in formato JSON. L’applicazione utilizza i dati JSON per aggiornare la pagina in modo dinamico, senza ricaricare la pagina.

In questo tipo, la logica di costruzione della pagina Web viene sostituita da servizi Web e ogni pagina del client ha entità separate chiamate widget. Inviando query AJAX ai servizi Web, i widget possono ricevere blocchi di dati in HTML o JSON e visualizzarli senza ricaricare l’intera pagina. Con aggiornamenti widget in tempo reale, questo tipo è più dinamico, mobile-friendly e quasi popolare come il tipo successivo.

Latest CSA

Angular è uno dei framework che consente la creazione di tali applicazioni. Angular è dotato di un proprio set di funzionalità, quindi la strategia di localizzazione tradizionale per i test di automazione richiederà molto tempo.

Che cosa è goniometro?

Goniometro è un framework di test end-to-end per le applicazioni AngularJS e funziona come un integratore di soluzioni che combina potenti strumenti e tecnologie come NodeJS, Selenium WebDriver, Jasmine, Cucumber e Mocha. È stato inizialmente sviluppato dagli sviluppatori di Google per supportare le applicazioni angular e in seguito è stato rilasciato come framework open source. Ora goniometro supporta sia applicazioni angolari e non angolari. Il goniometro è wrapper scritto sopra Webdriver.js, tutte le funzionalità supportate in Selenium Webdriver sono supportate da esso, oltre alle funzionalità specifiche angolari.

WebDriverJs è l’implementazione javascript ufficiale di selenium. Utilizza il protocollo JSON-Wire Selenium per interagire con il browser come fa selenium java. Goniometro dipende WebdriverJs di interagire con il browser.

Perché gli elementi web angolari JS sono difficili da identificare?

Le applicazioni JS angolari hanno alcuni attributi HTML aggiuntivi come ng-repeater, ng-controller, ng-model.., ecc. che non sono inclusi nei localizzatori di selenio. Il selenio non è in grado di identificare quegli elementi Web utilizzando il codice Selenio. Quindi, il goniometro in cima al Selenio può gestire e controllare quegli attributi nelle applicazioni Web.

Che cos'è il goniometro?

Caratteristiche del goniometro

Supporta localizzatori angolari specifici: L’applicazione angolare viene fornita con localizzatori specifici angolari come ng-model, ng-bind, ng-repeat, ecc. così goniometro ha esteso il supporto per questi localizzatori. Non è necessario creare XPath complesso per localizzatori angolari, nel Goniometro quei localizzatori sono pronti per te, quindi puoi semplicemente usare by.modello, da.ripetitore, ecc.

Supporta sia applicazioni non angolari che angolari: Goniometro ha esteso il supporto per angular, ma supporta anche per applicazioni non angolari. Ciò significa che se la tua parte dell’applicazione non è angolare e parte di essa è angolare, puoi comunque scegliere il framework goniometro e puoi eseguire l’automazione completa del test di automazione end-to-end.

Supporta test cross-Browser: Possiamo eseguire i nostri script in più browser come Chrome, Firefox, Safari, IE11, Edge. La configurazione per il test cross-browser è semplice e non richiede molto tempo. Tratteremo questo argomento in dettaglio nei nostri prossimi tutorial.

Supporta l’esecuzione parallela: considera che stiamo avendo un numero enorme di casi di test, se tutti i casi di test devono essere eseguiti in sequenza i.e uno dopo l’altro consuma molto tempo. L’esecuzione parallela aiuta in questo caso. L’esecuzione parallela esegue casi di test in più istanze del browser, ad esempio se si dispone di 4 casi di test, in un’esecuzione in due istanze del browser ciascuno esegue due-due casi di test in un singolo punto di tempo, quindi in meno tempo verranno eseguiti più casi di test.

Supporta Browser senza testa: Un browser senza testa è un senza l’interfaccia utente. Goniometro supporta anche il browser senza testa.

Supporta l’estensibilità: poiché il goniometro è un nodo.applicazione js, può utilizzare l’ampia varietà di pacchetti che sono disponibili nel nodo. Quindi si può estendere il proprio framework o aggiungere funzionalità aggiuntive installando pacchetti di nodi. Ad esempio, se hai bisogno di report HTML puoi semplicemente usare Jasmine HTML Reporter, per il codice pulito puoi installare eslint o tslint . Allo stesso modo, è possibile installare pacchetti nodo di vostra scelta.

Supporta i plugin di reporting: rispetto ai non nodi.framework di automazione open source basato su js è facile configurare il report in goniometro. Jasmine HTML Reporter è uno dei framework di generazione di report. Che produce report HTML per le tue specifiche. Di seguito è riportato il report di esempio

Supporta le piattaforme di test cloud: le piattaforme di test basate su cloud ci consentono di eseguire le nostre specifiche su più browser(Chrome, Firefox, Safari, ecc.), più piattaforme (Windows, Mac, Linux, Mobile, ecc.). Goniometro è supportato dalle principali piattaforme di test cloud come SauceLabs e CrossBrowserTesting.com.

Supporta più librerie di asserzioni: Goniometro supporta più librerie di asserzioni come Jasmine, Mocha o si può anche utilizzare le librerie personalizzate. Per impostazione predefinita, goniometro utilizza Jasmine framework per le asserzioni.

Supporta il flusso di controllo: API si basa su promesse, che sono gestiti da un flusso di controllo e adattato per Jasmine. Le API del goniometro sono interamente asincrone. Tutte le funzioni restituiscono promesse. Mantiene una coda di promesse in sospeso, chiamata flusso di controllo, per mantenere l’esecuzione organizzata. (Copriremo di più sulle promesse nelle prossime sezioni tutorial).

Supporta vari IDE& Editor: ci sono tonnellate di IDE là fuori nel mercato è possibile scegliere. Gli editor più popolari sono Visual Studio Code, WebStorm, Visual Studio Professional, Atom e sublime. (Tratteremo in dettaglio sui nostri prossimi tutorial)

Supporta CI/CD: Una volta che gli script di automazione sono a posto non abbiamo bisogno di eseguire manualmente e monitorare. Ogni volta che un nuovo codice va al repository, i test del goniometro dovrebbero essere eseguiti automaticamente e ottenere il report. Ciò significa che abbiamo bisogno di automatizzare il processo, possiamo raggiungere questo obiettivo integrando il test goniometro per costruire strumenti come Jenkins, TFS o Azure DevOps. Goniometro supporta l’integrazione strumento di costruzione. (Ci occuperemo passo dopo passo i dettagli di configurazione nei nostri prossimi tutorial).

Come funziona il goniometro?

framework

Il goniometro è un framework di test end-to-end, il goniometro è costruito su WebdriverJS, WebdriverJS è Selenium webdriver API javascript binding. Ciò significa che WebdriverJS API fornisce API per i test che sono scritti in javascript. Il goniometro è un framework di test basato sul selenio che significa che il goniometro interagisce con selenium server e webdriver come ChromeDriver, GeckoDriver, SafariDriver, ecc. per simulare le azioni dell’utente.

Quando gli script di test inviano comandi al server Selenium che a sua volta comunica con il driver del browser ed esegue i comandi (esegui azioni). Il prossimo è il framework di asserzione, il goniometro supporta vari framework di asserzioni come Jasmine, Mocha, ecc. Questo framework di asserzione ci aiuta a convalidare o verificare i valori, a sua volta, il test verrà contrassegnato come pass o fail. In breve Goniometro, WebdriverJS, Selenium Server, Browser Driver e Assertion Framework fornisce l’infrastruttura per la scrittura e l’esecuzione dei nostri test end-to-end.