geb tutorial browser automation testing using geb tool
Geb (pronunciato 'jeb') è la risposta alle sfide dell'automazione del browser. È uno strumento molto efficace per eseguire test di automazione sul web.
Geb è nato dalla necessità di rendere l'automazione del browser (inizialmente per i test web) meno complicata, più semplice e più efficiente. Può essere utilizzato per programmare, estrarre dati dal web e automatizzare le attività web manuali. Inoltre, Geb è un file cross-browser strumento per test di automazione.
Geb funziona come uno strumento guidato dagli sviluppatori per automatizzare la collaborazione tra browser web e contenuti web. Esegue il WebDriver in linguaggio Groovy.
La bellezza dello strumento di test Geb è che combina le migliori caratteristiche del linguaggio di programmazione Groovy, jQuery, WebDriver e Page Object Modeling per fornire controllo, selezione e interazione web potenti, robusti e dinamici.
Ciò che rende Geb unico rispetto ad altri strumenti di test di automazione disponibile sul mercato è la sua sintassi. È simile a jQuery che viene normalmente utilizzato per interrogare facilmente le pagine HTML. In secondo luogo, ha il supporto integrato per il pattern Page Object.
Geb fornisce un grande aiuto per i test web funzionali attraverso l'integrazione con alcune piattaforme di test ampiamente utilizzate e comuni, tra cui Spock , Grails, JUnit , Cetriolo-JVM , TestNG, ecc. Vedremo come Geb può essere integrato con il framework Grails nella parte successiva di questo articolo.
Cosa imparerai:
- Usi pratici
- Vantaggi
- Prerequisiti
- Iniziare
- Impara con l'esempio
- Test di convalida del database tramite script Geb:
- Pochi metodi utili in Geb
- Inconvenienti di questo strumento
- Più risorse:
- Conclusione
- Lettura consigliata
Usi pratici
Come già discusso nell'introduzione di questo tutorial Geb, può essere utilizzato:
- Come strumento di test su più browser come Chrome, Firefox, Internet Explorer, ecc. (Lo stesso script di automazione può essere eseguito su browser diversi per eseguire il test web della tua applicazione.)
- Per automatizzare l'accettazione dell'utente e i casi di test funzionali.
- Per automatizzare gli scenari di test creati per il test funzionale o web di qualsiasi applicazione.
- Per coprire il test end to end inclusa la convalida dell'interfaccia utente (interfaccia utente) e la convalida del database (database).
- Come strumento per sviluppatori per automatizzare l'interazione tra un browser web e i contenuti web.
Vantaggi
- Geb è uno strumento gratuito e open source. È concesso in licenza con la licenza Apache, versione 2.0.
- Facile e semplice da automatizzare il test web.
- Page Object di Geb e Groovy DSL rendono i test leggibili nella misura in cui sembrano quasi un semplice inglese.
- Esegue i test velocemente e quindi consente di risparmiare tempo e costi di test.
- Compatibile con diversi browser come IE, Firefox, Chrome e HTMLUnit.
- Esegue i test nel browser reale. È come se si eseguisse un test nell'ambiente reale, quello che l'utente vedrebbe.
- Rende facile il test di regressione. È possibile eseguire i casi di test automatizzati Geb per verificare se qualche funzionalità esistente si interrompe dopo una correzione o una modifica nell'applicazione.
- Durante l'utilizzo di Geb per i test di automazione, sono necessarie modifiche minime al codice di test se sono presenti modifiche all'interfaccia utente nell'applicazione. Quindi, riduce lo sforzo e la duplicazione del codice.
- Aiuta a 360 gradi (o massimo) testando la copertura all'interno del singolo script.
Prerequisiti
Prima di iniziare, dobbiamo scaricare e installare il software. Nel repository Maven centrale, Geb è disponibile come un singolo jar Geb-core. Clicca qui per installarlo sulla tua macchina.
Avrai bisogno del suddetto jar Geb-core, un'implementazione del driver web e il jar di supporto al selenio per far funzionare Geb sulla tua macchina.
Fare riferimento alla sezione di installazione e utilizzo di seguito del libro di Geb per installare lo strumento e farlo funzionare => Manuale di installazione e uso di Geb .
Iniziare
Come già discusso, Geb può essere integrato con diversi framework di test.
A seconda del framework che hai scelto, dovrai installare il relativo plugin.
Per esempio : Grails ( Graal è un framework molto famoso per le applicazioni web) per scrivere script di test di automazione e automatizzare gli scenari di test. Se desideri utilizzare Geb per i tuoi test funzionali Grails, puoi installare il relativo plugin da qui plugin grails-geb . Questo plugin gestisce il file baseUrl e reportsDir elementi di configurazione.
Impara con l'esempio
Vorrei ora mostrare come scrivere uno script Geb per automatizzare uno scenario di test.
Prendi lo scenario di test seguente:
ID scenario di prova | Softwaretestinghelp-1 | ID caso di test | Aiuto per il test del software -1A |
Uscita | |||
Descrizione del caso di test | Verifica la pagina Softwaretestinghelp.com tramite il motore di ricerca | Stato dello script di automazione | In corso |
Pre-requisito | 1 Browser 2. motore di ricerca 3. website - Softwaretestinghelp.com dovrebbe esistere | Script pre-requisito | N / A |
I passaggi di esecuzione sono:
Avvia il motore di ricerca Google |
Verifica se il motore di ricerca è stato caricato correttamente |
Immettere softwaretestinghelp.com nella casella di ricerca |
Attendi il caricamento dei risultati |
Verificare se il primo collegamento nei risultati indirizza a softwaretestinghelp.com |
In caso affermativo, apri il collegamento. |
Attendi fino all'apertura del sito web. |
Ecco lo script dello strumento di automazione Geb per lo scenario sopra:
import geb.Browser Browser.drive { go 'http://google.com/' //verify if we are on the correct page assert title=='Google' //enter softwaretestinghelp.com into the search field $('input',name:'q').value('softwaretestinghelp.com') //wait for the change to results page to happen //(google updates the page dynamically without a new request) waitFor{ title.endsWith('Google Serach')} //is the first link to softwaretestinghelp.com? def firstLink = $('li.g,0).find('a.l') assert firstLink.text()= ='Software Testing Help - A Must Visit Software Testing Portal' //click the link firstLink.click() //wait for Google's javascript waitFor { title = ='Software Testing Help - A Must Visit Software Testing Portal' } }
Ora puoi provare a scrivere un semplice script GEB da solo facendo riferimento all'esempio sopra.
Test di convalida del database tramite script Geb:
Qualsiasi test di automazione web è diviso in tre parti:
- Convalida dell'interfaccia utente - Convalida dei dati riflessi sull'interfaccia utente (front-end) prima e dopo l'esecuzione dello scenario di test di automazione.
- Convalida DB - Convalida dei dati riflessi nel database (backend) prima e dopo l'esecuzione dello scenario di test di automazione.
- Flusso di test effettivo / flusso di script.
Lo script Geb scritto per automatizzare uno scenario di test può contenere il codice per tutte le tre sezioni precedenti.
Lo script Geb nella sezione di esempio sopra era per automatizzare il flusso di test e la convalida dell'interfaccia utente. Allo stesso modo, puoi scrivere uno script di test per la convalida del database.
Per qualsiasi test di convalida del DB, puoi sempre utilizzare il modello seguente come schema per il tuo codice:
def validateDB(/*define all variables here*/) { def errorMessages = '' try { Configuration conf = (new ConfigurationLoader()).getConf() def sql = Sql.newInstance(conf.readValue('dbPath', ''), conf.readValue('dbUserName', ''), conf.readValue('dbPassword', ''), conf.readValue('dbDriverName', '')) /* Populate any required variables */ } /* Give print commands here to print required values */ def qry = /* select statement to pull all required values from database */ println 'SQL=$qry' sql.eachRow(qry) { row -> /* ‘if’ block to perform validation and returning error in case of any variations */ } catch(Exception e) { println 'EEEE=$e' } return errorMessages }
Pochi metodi utili in Geb
- Quando lo scenario del test case prevede più schede e finestre: Ogni volta che ti imbatti in un'applicazione che apre nuove finestre o schede, Per esempio quando si fa clic su un collegamento con un set di attributi di destinazione, è possibile utilizzare withWindow () e withNewWindow () metodi per eseguire codice nel contesto di altre finestre.
- Il metodo di guida: La classe Browser contiene un metodo statico - guidare() . Questo metodo offre un'ulteriore comodità allo scripting Geb. Tutte le chiamate ai metodi di primo livello e gli accessi alle proprietà sono impliciti nel browser.
- Facendo richieste: Le istanze del browser supportano un file baseUrl proprietà utilizzata per risolvere tutti gli URL relativi. Di solito è preferibile definire gli URL di base con barre finali e non utilizzare barre iniziali sugli URL relativi.
- Modifica della pagina: Con l'aiuto di utili pagina() metodi, è possibile modificare l'istanza della pagina senza effettuare una nuova richiesta.
- Chiusura del browser: L'oggetto browser fornisce smettere() e vicino() metodi (che semplicemente trasferiscono l'attività al driver di base).
Inconvenienti di questo strumento
- Nato esegue WebDriver nella lingua Groovy. L'idea alla base di tutto questo è farne uso WebDriver più facile e più semplice. Quindi, quando utilizzi Webdriver tramite Geb, sarà supportato solo il linguaggio di programmazione Groovy. Ma se usi direttamente WebDriver , supporta molti linguaggi come Ruby, C #, Python, Java.
- Non suggerirei l'uso di Geb per piccoli progetti - Funziona benissimo per compiti enormi ma prende un colpo su piccole attività. Se la tua applicazione web non contiene più pagine e moduli attraverso i quali le informazioni devono fluire, potresti scoprire che Geb ti costa davvero più tempo di quello che risparmia.
- È molto particolare sull'ambiente utilizzato dall'applicazione del tuo sito web. Geb deve essere ben integrato in un ambiente specifico per farlo funzionare bene.
Più risorse:
- Controlla il Libro di Geb qui per documentazione dettagliata ed esempi.
- Ecco un progetto di esempio che mostra il file integrazione di Geb con graal .
Conclusione
Geb è molto utile per automatizzare scenari di test case. È utile per automatizzare i test web, funzionali e di accettazione degli utenti. Supporta più browser e può essere integrato con diversi framework. Combina la potenza di WebDriver, l'eleganza di jQuery Selection, la robustezza del Page Object Modeling e l'espressività di Groovy.
Gli script Geb sono sia sviluppatori che user-friendly e forniscono una migliore copertura dei test e test accelerati, rendendoli allo stesso tempo più efficienti.
Circa l'autore: Questo è un guest post di Priya K. Ha più di 4 anni di esperienza nei servizi IT con esperienza nel test e nel supporto per varie applicazioni.
Sentiti libero di pubblicare le tue domande sui test di automazione Geb nei commenti.
Lettura consigliata
- Tutorial sullo strumento di test dell'accessibilità di WAVE
- Tutorial Ranorex: un potente strumento di test per l'automazione desktop, Web e mobile
- Sikuli GUI Automation Testing Tool - Guida per principianti Parte n. 2
- Tutorial QA Parrot: revisione dello strumento di test funzionale su più browser
- Migliori strumenti di test del software 2021 (Strumenti di automazione del test QA)
- Tutorial approfonditi su Eclipse per principianti
- Che cos'è il test di automazione (Guida definitiva per avviare l'automazione del test)
- Tutorial Parasoft SOAtest: strumento di test API senza script