geb tutorial browser automation testing using geb tool
Geb (pronunciat 'jeb') és la resposta als desafiaments de l'automatització del navegador. És una eina molt eficaç per realitzar proves d'automatització a la xarxa.
Geb es va originar per la necessitat de fer que l’automatització del navegador (inicialment per a proves web) fos menys complicada, sense problemes i més eficient. Es pot utilitzar per programar, extreure dades del web i automatitzar les tasques manuals del web. A més, Geb és un navegador creuat eina per a proves d'automatització.
Geb funciona com una eina basada en desenvolupadors per automatitzar la col·laboració entre navegadors web i contingut web. Executa el WebDriver en llenguatge Groovy.
L’eina de prova de Geb és que combina les millors característiques del llenguatge de programació Groovy, jQuery, WebDriver i Modelatge d'objectes de pàgina per proporcionar inspecció, selecció i interacció de contingut potents, robustes i dinàmics.
El que fa que Geb sigui únic en comparació amb altres eines de proves d'automatització disponible al mercat és la seva sintaxi. És similar a jQuery que normalment s’utilitza per consultar fàcilment les pàgines HTML. En segon lloc, té suport integrat per al patró Object Object.
Geb proporciona una gran ajuda per fer proves web funcionals mitjançant la integració amb algunes plataformes de proves àmpliament utilitzades i habituals, incloses Spock , Grials, JUnit , Cogombre-JVM , TestNG, etc. Veurem com Geb es pot integrar amb el framework Grails a la part posterior d’aquest article.
Què aprendreu:
- Usos pràctics
- Avantatges
- Requisits previs
- Començant
- Apreneu amb l'exemple
- Proves de validació de bases de dades mitjançant script Geb:
- Pocs mètodes útils a Geb
- Inconvenients d'aquesta eina
- Més recursos:
- Conclusió
- Lectura recomanada
Usos pràctics
Com ja s'ha comentat a la introducció d'aquest tutorial de Geb, es pot utilitzar:
- Com a eina de proves en diversos navegadors com Chrome, Firefox, Internet Explorer, etc. (es pot executar el mateix script d'automatització en diferents navegadors per realitzar proves web de la vostra aplicació)
- Per automatitzar l'acceptació de l'usuari i els casos de proves funcionals.
- Per automatitzar escenaris de proves creats per a proves funcionals o web de qualsevol aplicació.
- Per cobrir les proves d'extrem a extrem, inclosa la validació de la interfície d'usuari (User Interface) i la validació de la base de dades (base de dades).
- Com a eina per a desenvolupadors per automatitzar la interacció entre un navegador web i el contingut web.
Avantatges
- Geb és una eina gratuïta de codi obert. Està llicenciat sota la llicència Apache, versió 2.0.
- Fàcil i senzill automatitzar les proves web.
- Els objectes de pàgina de Geb i Groovy DSL fan que les proves siguin llegibles fins al punt que gairebé semblen un anglès senzill.
- Executa les proves ràpidament i, per tant, estalvia temps i cost de les proves.
- Compatible amb diferents navegadors com IE, Firefox, Chrome i HTMLUnit.
- Executa les proves al navegador real. És com si provés a l'entorn real, el que veuria l'usuari.
- Facilita les proves de regressió. Podeu executar els casos de prova automatitzats de Geb per comprovar si alguna funcionalitat existent es trenca després d'una correcció o canvi a l'aplicació.
- Mentre utilitzeu Geb per a proves d'automatització, calen canvis mínims del codi de prova si hi ha canvis a la interfície d'usuari a la vostra aplicació. Per tant, redueix l’esforç i la duplicació de codi.
- Ajuda a provar la cobertura de 360 graus (o màxim) dins del guió únic.
Requisits previs
Abans de començar, hem de descarregar i instal·lar el programari. Al dipòsit central de Maven, Geb està disponible com un únic pot de nucli Geb. Clica aquí per instal·lar-lo al vostre equip.
Necessitareu el pot de Geb-core anterior, una implementació de controlador web i el pot de seleni, perquè Geb funcioni a la vostra màquina.
Consulteu la secció següent d’instal·lació i ús del llibre de Geb per instal·lar l’eina i fer-la funcionar => Manual d'instal·lació i ús de Geb .
Començant
Com ja s'ha comentat, Geb es pot integrar amb diferents marcs de proves.
Depenent del marc que hàgiu triat, haureu d'instal·lar el connector relacionat.
Per exemple : Grials ( Grials és un marc molt famós per a aplicacions web) per escriure scripts de prova d’automatització i automatitzar els escenaris de prova. Si voleu utilitzar Geb per a les proves funcionals de Grails, podeu instal·lar el connector relacionat des d’aquí connector grails-geb . Aquest connector gestiona el fitxer baseUrl i informesDir elements de configuració.
Apreneu amb l'exemple
Permeteu-me ara mostrar com escriure un script Geb per automatitzar un escenari de prova.
Preneu el següent escenari de prova:
Identificador d'escenari de prova | Softwaretestinghelp-1 | Identificador del cas de prova | Softwaretestinghelp -1A |
Surt | |||
Descripció del cas de prova | Verifiqueu la pàgina de Softwaretestinghelp.com mitjançant el motor de cerca | Estat de l’escriptura d’automatització | En progrés |
Requisit previ | 1 navegador 2. motor de cerca 3. lloc web: hauria d’existir Softwaretestinghelp.com | Script previ | NA |
Els passos d'execució són:
Inicieu el motor de cerca de Google |
Verifiqueu si el motor de cerca s'ha carregat correctament |
Introduïu softwaretestinghelp.com al quadre de cerca |
Espereu a que es carreguin els resultats |
Verifiqueu si el primer enllaç dels resultats es dirigeix a softwaretestinghelp.com |
Si és així, obriu l'enllaç. |
Espereu fins que s'obri el lloc web. |
Aquí teniu el script de l'eina d'automatització de Geb per a l'escenari anterior:
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' } }
Ara podeu provar d’escriure un script GEB senzill fent referència a l’exemple anterior.
Proves de validació de bases de dades mitjançant script Geb:
Qualsevol prova d'automatització web es divideix en tres parts:
- Validació de la IU: Validació de les dades reflectides a la interfície d'usuari (interfície) abans i després de l'execució de l'escenari de prova d'automatització.
- Validació de la base de dades: Validació de les dades reflectides a la base de dades (dorsal) abans i després de l'execució de l'escenari de prova d'automatització.
- Flux de prova real / flux de scripts.
L'escriptura Geb escrita per automatitzar un escenari de prova pot contenir el codi de totes les tres seccions anteriors.
L'escriptura Geb de la secció d'exemple anterior era per automatitzar el flux de prova i la validació de la interfície d'usuari. De la mateixa manera, podeu escriure un script de prova per validar la base de dades.
Per a qualsevol prova de validació de base de dades, sempre podeu utilitzar la plantilla següent com a esbós del vostre codi:
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 }
Pocs mètodes útils a Geb
- Quan el vostre cas de prova inclou diverses pestanyes i finestres: Sempre que us trobeu amb una aplicació que obre finestres o pestanyes noves, Per exemple en fer clic a un enllaç amb un conjunt d’atributs de destinació, podeu fer servir amb Windows () i amb NewWindow () mètodes per executar codi en el context d'altres finestres.
- El mètode de la unitat: La classe del navegador conté un mètode estàtic: conduir() . Aquest mètode proporciona una comoditat addicional als scripts de Geb. Totes les trucades al mètode de nivell superior i els accessos a propietats estan implicats en contra del navegador.
- Fer sol·licituds: Les instàncies del navegador confirmen un baseUrl propietat que s’utilitza per resoldre tots els URL relatius. Normalment, és més preferible definir els URL base amb barres inclinades finals i no utilitzar barres inclinades principals en URL relatius.
- Canvi de pàgina: Amb l'ajut de útil pàgina () mètodes, és factible canviar la instància de la pàgina sense fer una nova sol·licitud.
- Surt del navegador: L'objecte del navegador proporciona deixar () i Tanca() mètodes (que simplement transfereixen la tasca al controlador base).
Inconvenients d'aquesta eina
- Neix executa WebDriver en la llengua Groovy. Tota la idea darrere d'això és fer ús de WebDriver més fàcil i senzill. Per tant, quan utilitzeu Webdriver a través de Geb, només s’admetrà el llenguatge de programació Groovy. Però, si ho feu servir directament WebDriver , admet molts idiomes com Ruby, C #, Python, Java.
- No suggeriria l'ús de Geb per a projectes petits: funciona fantàstic per a tasques enormes, però té un èxit en activitats petites. Si la vostra aplicació web no conté diverses pàgines i formularis a través dels quals cal transmetre la informació, és possible que descobriu que Geb realment us costarà més temps del que estalvia.
- És molt particular sobre l’entorn que utilitza la vostra aplicació de lloc web. Cal que Geb estigui ben integrat en un entorn específic perquè funcioni bé.
Més recursos:
- Consulteu el Llibre de Geb aquí per obtenir documentació detallada i exemples.
- Aquí hi ha un projecte de mostra que mostra el integració de Geb amb grials .
Conclusió
Geb és molt útil per automatitzar escenaris de casos de proves. És útil per automatitzar proves d’acceptació d’usuaris i funcionals al web. Admet múltiples navegadors i es pot integrar amb diferents frameworks. Combina la potència de WebDriver, l'elegància de jQuery Selection, la robustesa del modelatge d'objectes de pàgina i l'expressivitat de Groovy.
Els scripts de Geb són fàcils de desenvolupar i fàcils d’utilitzar i proporcionen una millor cobertura de proves i proves accelerades alhora que el fan més eficaç alhora.
Sobre l'autor: Aquesta és una publicació de Priya K. Té més de 4 anys d’experiència en serveis de TI amb experiència en proves i suport per a diverses aplicacions.
No dubteu a publicar les vostres consultes de proves d'automatització de Geb als comentaris.
Lectura recomanada
- Tutorial de l'eina de proves d'accessibilitat WAVE
- Tutorial Ranorex: una potent eina de proves per a ordinadors per a ordinadors, web i mòbils
- Eina de proves d’automatització de l’interfície gràfica d’usuari de Sikuli: Guia per a principiants, part 2
- Tutorial de Parrot QA: revisió de l'eina de proves funcionals de diversos navegadors
- Les millors eines de prova de programari 2021 (Eines d'automatització de proves de control de qualitat)
- Tutorials Eclipse en profunditat per a principiants
- Què és la prova d'automatització (última guia per iniciar l'automatització de proves)
- Parasoft SOAtest Tutorial: Eina de prova d'API sense script