geb tutorial browser automation testing using geb tool
Geb (uttalt 'jeb') er svaret på utfordringene med nettleserautomatisering. Det er et veldig effektivt verktøy for å utføre automatiseringstesting over nettet.
Geb stammer fra behovet for å gjøre nettleserautomatisering (i utgangspunktet for nettesting) mindre komplisert, problemfri og mer effektiv. Den kan brukes til programmering, utvinning av data fra nettet og automatisering av manuelle nettoppgaver. I tillegg er Geb en nettleser verktøy for automatiseringstesting.
Geb fungerer som et utviklerdrevet verktøy for å automatisere samarbeidet mellom nettlesere og nettinnhold. Den kjører WebDriver på Groovy-språk.
Det fine med Geb-testverktøyet er at det kombinerer de beste funksjonene i Groovy programmeringsspråk, jQuery, WebDriver og Page Object Modeling for å gi kraftig, robust og dynamisk inspeksjon, utvalg og nettinteraksjon av innhold.
Hva gjør Geb unik i forhold til andre verktøy for automatiseringstesting tilgjengelig i markedet er syntaksen. Det ligner på jQuery som vanligvis brukes til å spørre HTML-sidene enkelt. For det andre har den integrert støtte for Page Object-mønsteret.
Geb gir god hjelp til funksjonell nettesting gjennom integrasjon med noen bredt brukte og vanlige testplattformer, inkludert Spock , Grails, JUnit , Agurk-JVM , TestNG, etc. Vi vil se hvordan Geb kan integreres med Grails framework i den senere delen av denne artikkelen.
Hva du vil lære:
- Praktiske bruksområder
- Fordeler
- Forutsetninger
- Starter
- Lær med eksempel
- Testing av databasevalidering gjennom Geb-skript:
- Få nyttige metoder i Geb
- Ulemper med dette verktøyet
- Flere ressurser:
- Konklusjon
- Anbefalt lesing
Praktiske bruksområder
Som allerede diskutert i introduksjonen av denne Geb-opplæringen, kan den brukes:
- Som et testverktøy i flere nettlesere som Chrome, Firefox, Internet Explorer osv. (Det samme automatiseringsskriptet kan kjøres i forskjellige nettlesere for å utføre nettesting av applikasjonen din.)
- For å automatisere brukeraksept og funksjonelle testtilfeller.
- Å automatisere testscenarier som er opprettet for funksjonell eller nettesting av ethvert program.
- For å dekke test til slutt til slutt, inkludert UI (User Interface) validering og DB (Database) validering.
- Som et utviklerverktøy for å automatisere samspillet mellom en nettleser og nettinnhold.
Fordeler
- Geb er et gratis verktøy med åpen kilde. Den er lisensiert under Apache-lisensen, versjon 2.0.
- Enkelt og enkelt å automatisere nettesting.
- Geb’s Page Objects og Groovy DSL gjør tester lesbare i den grad de nesten ser ut som vanlig engelsk.
- Kjører testene raskt og sparer dermed tid og kostnad ved testing.
- Kompatibel med forskjellige nettlesere som IE, Firefox, Chrome og HTMLUnit.
- Den utfører testene i den virkelige nettleseren. Det er som om man tester i det virkelige miljøet - det som brukeren vil se.
- Det gjør regresjonstesten enkel. Du kan kjøre Geb automatiserte testsaker for å sjekke om eksisterende funksjonalitet bryter etter en løsning eller endring i applikasjonen.
- Mens du bruker Geb for automatiseringstesting, kreves det minimale endringer i testkoder hvis det er noen UI-endringer i applikasjonen din. Så det reduserer innsatsen og duplisering av kode.
- Det hjelper 360 graders (eller maksimum) testdekning i det eneste skriptet.
Forutsetninger
Før vi begynner, må vi laste ned og installere programvaren. På det sentrale Maven-depotet er Geb tilgjengelig som en enkelt Geb-core jar. Klikk her for å installere den på maskinen din.
Du trenger ovennevnte Geb-core jar, en implementering av en nettdriver og selen-support jar for å få Geb til å fungere på maskinen din.
Se installasjons- og bruksseksjonen nedenfor i boken til Geb for å installere verktøyet og få det i gang => Geb installasjons- og bruksanvisning .
Starter
Som allerede diskutert kan Geb integreres med forskjellige testrammer.
Avhengig av rammeverket du har valgt, må du installere den tilhørende plugin-modulen.
For eksempel : Grails ( Gral er et veldig kjent rammeverk for webapplikasjoner) for å skrive automatiseringstestskript og automatisere testscenariene. Hvis du ønsker å bruke Geb til Grails funksjonstesting, kan du installere den tilhørende plugin herfra grails-geb plugin . Dette pluginet håndterer baseUrl og rapporterer Dir konfigurasjonselementer.
Lær med eksempel
La meg nå vise hvordan du skriver et Geb-skript for å automatisere et testscenario.
Ta testscenariet nedenfor:
Test scenario-ID | Programvarehjelp-1 | Prøvesak ID | Softwaretestinghelp -1A |
Exit | |||
Test Case Beskrivelse | Verifiser Softwaretestinghelp.com-siden gjennom søkemotoren | Status for automatiseringsskript | I prosess |
Forutsetning | 1 Nettleser 2. søkemotor 3. nettsted - Softwaretestinghelp.com bør eksistere | Forutbestemt skript | NA |
Gjennomføringstrinnene er:
Start google søkemotor |
Bekreft om søkemotoren er lastet inn |
Skriv inn softwaretestinghelp.com i søkefeltet |
Vent til resultatene lastes inn |
Kontroller om den første lenken i resultatene er dirigert til softwaretestinghelp.com |
Hvis ja, åpne lenken. |
Vent til nettstedet åpnes. |
Her er Geb automatiseringsverktøyskriptet for scenariet ovenfor:
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' } }
Du kan nå prøve å skrive et enkelt GEB-skript på egen hånd med henvisning til eksemplet ovenfor.
Testing av databasevalidering gjennom Geb-skript:
Enhver testing av nettautomatisering er delt inn i tre deler:
- UI-validering - Validering av dataene som reflekteres i brukergrensesnittet (frontend) før og etter automatiseringstestscenarioet.
- DB-validering - Validering av dataene som gjenspeiles i databasen (backend) før og etter automatiseringstestscenarioet.
- Faktisk testflyt / skriptflyt.
Geb-skriptet skrevet for å automatisere et testscenario kan inneholde koden for alle de ovennevnte tre seksjonene.
Geb-skriptet i eksemplet ovenfor var for å automatisere testflyten og UI-validering. På samme måte kan du skrive et testskript for databasevalidering.
For enhver DB-valideringstest kan du alltid bruke malen nedenfor som en oversikt for koden din:
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 }
Få nyttige metoder i Geb
- Når testsaken din involverer flere faner og vinduer: Når du kommer over et program som åpner nye vinduer eller faner, For eksempel når du klikker på en lenke med et målattributt sett, kan du bruke withWindow () og withNewWindow () metoder for å utføre kode i sammenheng med andre vinduer.
- Kjøremetoden: Nettleserklasse inneholder en statisk metode - kjøre() . Denne metoden gir Geb scripting ekstra komfort. Alle samtaler og tilgang på eiendom på øverste nivå antydes å være mot nettleseren.
- Forespørsel: Nettleserinstanser opprettholder a baseUrl eiendom som brukes til å løse alle relative nettadresser. Det er vanligvis mest foretrukket å definere basenettadressene dine med etterfølgende skråstreker og ikke bruke ledende skråstreker på relative nettadresser.
- Endre siden: Ved hjelp av nyttige side() metoder, er det mulig å endre sideinstansen uten å komme med en ny forespørsel.
- Avslutte nettleseren: Nettleserobjektet gir slutte() og Lukk() metoder (som bare overleverer oppgaven til basedriveren).
Ulemper med dette verktøyet
- Født utfører WebDriver på Groovy-språket. Hele ideen bak dette er å gjøre bruk av WebDriver enklere og enklere. Så når du bruker Webdriver gjennom Geb, vil bare Groovy programmeringsspråk støttes. Men hvis du bruker det direkte WebDriver , den støtter mange språk som Ruby, C #, Python, Java.
- Jeg vil ikke foreslå bruk av Geb for små prosjekter - Det fungerer fantastisk for enorme oppgaver, men tar et treff på små aktiviteter. Hvis webapplikasjonen din ikke inneholder flere sider og skjemaer som informasjonen trenger å strømme gjennom, kan du oppdage at Geb virkelig koster ekstra tid enn det sparer.
- Det er veldig spesielt om hvilket miljø nettstedet ditt bruker. Geb kreves for å være godt integrert i et bestemt miljø for å få det til å fungere bra.
Flere ressurser:
- Sjekk ut Book of Geb her for detaljert dokumentasjon og eksempler.
- Her er et eksempel på et prosjekt som viser integrering av Geb med korn .
Konklusjon
Geb er veldig nyttig i automatisering av testscenarier. Det er nyttig å automatisere testing av nett, funksjoner og brukeraksept. Den støtter flere nettlesere og kan integreres med forskjellige rammer. Den kombinerer kraften til WebDriver, elegansen til jQuery Selection, robustheten til sideobjektmodellering og uttrykksevnen til Groovy.
Geb-skripter er både utvikler og brukervennlige, og gir bedre testdekning og akselerert testing, samtidig som de blir mer effektive.
Om forfatteren: Dette er et gjestepost av Priya K. Hun har 4+ års erfaring innen IT-tjenester med ekspertise innen testing og støtte for ulike applikasjoner.
Legg gjerne spørsmål om Geb-automatiseringstesting i kommentarer.
Anbefalt lesing
- Veiledning for WAVE tilgjengelighetstestverktøy
- Ranorex-opplæring: Et kraftig testverktøy for skrivebord, nett og mobil automatisering
- Sikuli GUI Automation Testing Tool - Beginner's Guide Part # 2
- Parrot QA Tutorial: Cross Browser Functional Testing Tool Review
- Beste verktøy for testing av programvare 2021 [QA Test Automation Tools]
- In-Depth Eclipse Tutorials For Beginners
- Hva er automatiseringstesting (Ultimate Guide to Start Test Automation)
- Parasoft SOAtest Tutorial: Scriptless API Testing Tool