geb tutorial browser automation testing using geb tool
Geb (uttalad 'jeb') är svaret på utmaningarna med webbläsare automatisering. Det är ett mycket effektivt verktyg för att utföra automatiseringstester över webben.
Geb har sitt ursprung i behovet av att göra webbläsarautomatisering (initialt för webbtestning) mindre komplicerad, problemfri och effektivare. Den kan användas för programmering, extrahera data från webben och automatisera de manuella webbuppgifterna. Dessutom är Geb ett webbläsare verktyg för automatiseringstestning.
Geb fungerar som ett utvecklingsdrivet verktyg för att automatisera samarbetet mellan webbläsare och webbinnehåll. Den kör WebDriver på Groovy-språk.
Det fina med Geb-testverktyget är att det kombinerar de bästa funktionerna i Groovy programmeringsspråk, jQuery, WebDriver och Page Object Modeling för att ge kraftfull, robust och dynamisk innehållsinspektion, urval och webbinteraktion.
Vad gör Geb unikt jämfört med andra verktyg för automatiseringstestning tillgänglig på marknaden är dess syntax. Det liknar jQuery som normalt används för att enkelt fråga HTML-sidorna. För det andra har den integrerat stöd för Page Object-mönstret.
Geb ger bra hjälp för funktionell webbtestning genom integration med några allmänt använda och vanliga testplattformar inklusive Spock , Grails, JUnit , Gurka-JVM , TestNG, etc. Vi kommer att se hur Geb kan integreras med Grails framework i den senare delen av denna artikel.
Vad du kommer att lära dig:
- Praktiska användningsområden
- Fördelar
- Förutsättningar
- Komma igång
- Lär med exempel
- Valideringstestning av databaser via Geb-skript:
- Få användbara metoder i Geb
- Nackdelar med detta verktyg
- Fler resurser:
- Slutsats
- Rekommenderad läsning
Praktiska användningsområden
Som redan diskuterats i introduktionen av denna Geb-handledning kan den användas:
- Som ett testverktyg på flera webbläsare som Chrome, Firefox, Internet Explorer etc. (Samma automatiseringsskript kan köras i olika webbläsare för att utföra webbtestning av din applikation.)
- För att automatisera användaracceptans och funktionella testfall.
- För att automatisera testscenarier som skapats för funktionell eller webbtestning av alla applikationer.
- För att täcka test från slut till slut inklusive UI (User Interface) validering och DB (Database) validering.
- Som utvecklarverktyg för att automatisera interaktionen mellan en webbläsare och webbinnehåll.
Fördelar
- Geb är ett gratis verktyg med öppen källkod. Det är licensierat under Apache-licensen, version 2.0.
- Enkelt och enkelt att automatisera webbtestning.
- Geb's Page Objects och Groovy DSL gör tester läsbara i den mån de nästan ser ut som vanlig engelska.
- Kör testerna snabbt och sparar därmed tid och kostnad för testningen.
- Kompatibel med olika webbläsare som IE, Firefox, Chrome och HTMLUnit.
- Testen utförs i den riktiga webbläsaren. Det är som att testa i den verkliga miljön - den som användaren skulle se.
- Det gör regressionstestningen lätt. Du kan köra Geb-automatiska testfall för att kontrollera om någon befintlig funktionalitet går sönder efter en fix eller ändring av applikationen.
- När du använder Geb för automatiseringstest krävs minimala testkodändringar om det finns några användargränssnittsändringar i din applikation. Så det minskar ansträngning och duplicering av kod.
- Det hjälper 360 graders (eller maximalt) testtäckning inom det enda skriptet.
Förutsättningar
Innan vi börjar måste vi ladda ner och installera programvaran. I det centrala Maven-arkivet finns Geb tillgängligt som en enda Geb-core-burk. Klicka här för att installera den på din maskin.
Du behöver ovanstående Geb-core-burk, en webbdrivrutinimplementering och selen-supportburken för att få Geb att arbeta på din maskin.
Se nedanstående installations- och användningsavsnitt i Gebs bok för att installera verktyget och få det igång => Geb installations- och användarhandbok .
Komma igång
Som redan diskuterats kan Geb integreras med olika testramar.
Beroende på vilket ramverk du har valt måste du installera det relaterade tillägget.
Till exempel : Grails ( Grails är ett mycket känt ramverk för webbapplikationer) för att skriva automatiseringsprovskript och automatisera testscenarierna. Om du vill använda Geb för din Grails funktionstestning kan du installera tillhörande plugin härifrån plugin för grails-geb . Detta plugin hanterar basUrl och rapporterar Dir konfigurationsobjekt.
Lär med exempel
Låt mig nu visa hur man skriver ett Geb-skript för att automatisera ett testscenario.
Ta nedanstående testscenario:
Test Scenario-ID | Mjukvarutestningshjälp-1 | Testfall Id | Mjukvarutestningshjälp -1A |
Utgång | |||
Testfall Beskrivning | Verifiera Softwaretestinghelp.com-sidan via sökmotorn | Status för automatiseringsskript | Pågående |
Nödvändig förutsättning | 1 webbläsare 2. sökmotor 3. webbplats - Softwaretestinghelp.com bör finnas | Förutsatt skript | NA |
Körningsstegen är:
Starta Googles sökmotor |
Kontrollera om sökmotorn har laddats |
Ange softwaretestinghelp.com i sökrutan |
Vänta tills resultaten laddas |
Kontrollera om den första länken i resultaten leder till softwaretestinghelp.com |
Om ja, öppna länken. |
Vänta tills webbplatsen öppnas. |
Här är Geb-automatiseringsverktygsskriptet för ovanstående scenario:
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 nu försöka skriva ett enkelt GEB-skript på egen hand med hänvisning till ovanstående exempel.
Valideringstestning av databaser via Geb-skript:
Alla webbautomatiseringstester är indelade i tre delar:
- UI-validering - Validera data som återspeglas i användargränssnittet (frontend) före och efter körning av automatiseringsprovscenariot.
- DB-validering - Validera de data som återspeglas i databasen (backend) före och efter körning av scenariot för automatisering.
- Verkligt testflöde / skriptflöde.
Geb-skriptet som är skrivet för att automatisera ett testscenario kan innehålla koden för alla ovanstående tre avsnitt.
Geb-skriptet i exemplet ovan var för att automatisera testflödet och UI-validering. På samma sätt kan du skriva ett testskript för databasvalidering.
För valfritt DB-valideringstest kan du alltid använda nedanstående mall som en översikt för din kod:
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å användbara metoder i Geb
- När ditt testfallsscenario involverar flera flikar och fönster: När du stöter på ett program som öppnar nya fönster eller flikar, Till exempel när du klickar på en länk med en målattributuppsättning kan du använda withWindow () och withNewWindow () metoder för att köra kod i samband med andra fönster.
- Enhetsmetoden: Webbläsarklass innehåller en statisk metod - kör() . Denna metod ger en extra bekvämlighet för Geb-skript. Alla metodsamtal på högsta nivå och tillgång till egendom antas vara mot webbläsaren.
- Framställningar: Webbläsarinstanser upprätthåller a basUrl egendom som används för att lösa alla relativa webbadresser. Det är vanligtvis mest föredraget att definiera dina basadresser med efterföljande snedstreck och inte använda ledande snedstreck på relativa webbadresser.
- Byta sida: Med hjälp av användbara sida() metoder är det möjligt att ändra sidinstansen utan att göra en ny begäran.
- Avsluta webbläsaren: Webbläsarobjektet tillhandahåller sluta med() och stänga() metoder (som helt enkelt överlämnar uppgiften till basdrivrutinen).
Nackdelar med detta verktyg
- Född körs WebDriver på Groovy-språket. Hela tanken bakom detta är att använda WebDriver enklare och enklare. Så när du använder Webdriver via Geb stöds endast Groovy programmeringsspråk. Men om du använder direkt WebDriver , det stöder många språk som Ruby, C #, Python, Java.
- Jag skulle inte föreslå att Geb används för små projekt - Det fungerar fantastiskt för enorma uppgifter men slår på små aktiviteter. Om din webbapplikation inte innehåller flera sidor och formulär genom vilka informationen måste flyta kan du upptäcka att Geb verkligen kostar extra tid än vad den sparar.
- Det handlar mycket om vilken miljö din webbplatsapplikation använder. Geb krävs för att vara väl integrerad i en specifik miljö för att få den att fungera bra.
Fler resurser:
- Kolla in Book of Geb här för detaljerad dokumentation och exempel.
- Här är ett exempelprojekt som visar integration av Geb med grails .
Slutsats
Geb är mycket användbart för att automatisera testfallsscenarier. Det är användbart att automatisera webb-, funktionstest- och användaracceptstestning. Den stöder flera webbläsare och kan integreras med olika ramar. Den kombinerar kraften i WebDriver, elegansen i jQuery Selection, robustheten i sidobjektmodellering och Groovys expressivitet.
Geb-skript är både utvecklare och användarvänliga och ger bättre testtäckning och accelererad testning samtidigt som de blir effektivare samtidigt.
Om författaren: Detta är ett gästinlägg av Priya K. Hon har 4+ års erfarenhet av IT-tjänster med expertis inom testning och support för olika applikationer.
Skicka gärna dina frågor om Geb-automatiseringstest i kommentarer.
Rekommenderad läsning
- Handledning för testning av WAVE-tillgänglighetsverktyg
- Ranorex-handledning: Ett kraftfullt testverktyg för skrivbords-, webb- och mobilautomatisering
- Sikuli GUI Automation Testing Tool - Beginner's Guide Part # 2
- Parrot QA Tutorial: Cross Browser Functional Testing Tool Review
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- Fördjupade förklaringar om förmörkelser för nybörjare
- Vad är Automation Testing (Ultimate Guide to Start Test Automation)
- Parasoft SOAtest Tutorial: Scriptless API Testing Tool