Goniometro - Introduzione

Questo capitolo fornisce un'introduzione a Goniometro, dove apprenderai l'origine di questo framework di test e perché devi sceglierlo, il funzionamento e i limiti di questo strumento.

Cos'è il goniometro?

Goniometro è un framework di test end-to-end open source per applicazioni Angular e AngularJS. È stato costruito da Google sulla parte superiore di WebDriver. Serve anche come sostituto del framework di test AngularJS E2E esistente chiamato "Angular Scenario Runner".

Funziona anche come integratore di soluzioni che combina potenti tecnologie come NodeJS, Selenium, Jasmine, WebDriver, Cucumber, Mocha ecc. Insieme al test dell'applicazione AngularJS, scrive anche test di regressione automatizzati per normali applicazioni web. Ci consente di testare la nostra applicazione proprio come un utente reale perché esegue il test utilizzando un browser reale.

Il diagramma seguente fornirà una breve panoramica del goniometro:

Osserva che nel diagramma sopra abbiamo:

  • Protractor - Come discusso in precedenza, è un wrapper su WebDriver JS appositamente progettato per app angolari.

  • Jasmine- È fondamentalmente un framework di sviluppo basato sul comportamento per testare il codice JavaScript. Possiamo scrivere facilmente i test con Jasmine.

  • WebDriver JS - È un'implementazione dei collegamenti Node JS per selenium 2.0 / WebDriver.

  • Selenium - Automatizza semplicemente il browser.

Origine

Come detto in precedenza, Protractor è un sostituto per il framework di test AngularJS E2E esistente chiamato "Angular Scenario Runner". Fondamentalmente, l'origine di Goniometro inizia con la fine di Scenario Runner. Una domanda che sorge qui è perché dobbiamo costruire Goniometro? Per capirlo, dobbiamo prima controllare il suo predecessore: Scenario Runner.

Inception del goniometro

Julie Ralph, il principale contributore allo sviluppo di Goniometro, ha avuto la seguente esperienza con Angular Scenario Runner su un altro progetto all'interno di Google. Questa è diventata ulteriormente la motivazione per costruire Goniometro, specialmente per colmare le lacune -

“Abbiamo provato a utilizzare Scenario Runner e abbiamo scoperto che non poteva fare le cose che dovevamo testare. Avevamo bisogno di testare cose come l'accesso. La tua pagina di accesso non è una pagina angolare e lo Scenario Runner non poteva occuparsene. E non poteva gestire cose come popup e finestre multiple, navigazione nella cronologia del browser, cose del genere. "

Il più grande vantaggio per il goniometro è stata la maturità del progetto Selenium e racchiude i suoi metodi in modo che possa essere facilmente utilizzato per progetti angolari. Il design di Goniometro è costruito in modo tale da testare tutti i livelli come l'interfaccia utente web, i servizi di backend, il livello di persistenza e così via di un'applicazione.

Perché goniometro?

Come sappiamo, quasi tutte le applicazioni utilizzano JavaScript per lo sviluppo. Il compito dei tester diventa difficile quando JavaScript aumenta di dimensioni e diventa complesso per le applicazioni a causa del numero crescente di applicazioni stesse. La maggior parte delle volte diventa molto difficile catturare gli elementi web nelle applicazioni AngularJS, utilizza la sintassi HTML estesa per esprimere i componenti delle applicazioni web, usando JUnit o Selenium WebDriver.

La domanda qui è: perché Selenium Web Driver non è in grado di trovare elementi web AngularJS? Il motivo è perché le applicazioni AngularJS hanno alcuni attributi HTML estesi come ng-repeater, ng-controller e ng-model ecc. Che non sono inclusi nei localizzatori Selenium.

Qui, l'importanza di Protractor viene alla luce perché Protractor sulla parte superiore di Selenium può gestire e controllare quegli elementi HTML estesi nelle applicazioni web AngularJS. Questo è il motivo per cui possiamo dire che la maggior parte dei framework si concentra sulla conduzione di unit test per le applicazioni AngularJS, Protractor utilizzato per testare la funzionalità effettiva di un'applicazione.

Funzionamento del goniometro

Protractor, il framework di test, funziona insieme a Selenium per fornire un'infrastruttura di test automatizzata per simulare l'interazione di un utente con un'applicazione AngularJS in esecuzione nel browser o dispositivo mobile.

Il funzionamento del goniometro può essere compreso con l'aiuto dei seguenti passaggi:

  • Step 1- Nella prima fase, dobbiamo scrivere i test. Può essere fatto con l'aiuto di Jasmine o Mocha o Cetriolo.

  • Step 2- Ora, dobbiamo eseguire il test che può essere eseguito con l'aiuto di Goniometro. È anche chiamato test runner.

  • Step 3 - In questo passaggio, il server Selenium aiuterà a gestire i browser.

  • Step 4 - Infine, le API del browser vengono richiamate con l'aiuto di Selenium WebDriver.

Vantaggi

Questo framework di test end-to-end open source offre i seguenti vantaggi:

  • Uno strumento open source, Goniometro è molto facile da installare e configurare.

  • Funziona bene con il framework Jasmine per creare il test.

  • Supporta lo sviluppo basato su test (TDD).

  • Contiene attese automatiche, il che significa che non è necessario aggiungere esplicitamente attese e dormienti al nostro test.

  • Offre tutti i vantaggi di Selenium WebDriver.

  • Supporta test paralleli tramite più browser.

  • Offre il vantaggio della sincronizzazione automatica.

  • Ha un'eccellente velocità di test.

Limitazioni

Questo framework di test end-to-end open source presenta le seguenti limitazioni:

  • Non scopre alcun verticale nell'automazione del browser perché è un wrapper per WebDriver JS.

  • La conoscenza di JavaScript è essenziale per l'utente, perché è disponibile solo per JavaScript.

  • Fornisce solo test front-end perché è uno strumento di test basato sull'interfaccia utente.