geb tutorial browser automation testing using geb tool
Geb (izgovarja se 'jeb') je odgovor na izzive avtomatizacije brskalnikov. Je zelo učinkovito orodje za izvajanje avtomatiziranih preskusov prek spleta.
Geb je nastal zaradi potrebe po avtomatizaciji brskalnikov (sprva za spletno testiranje), ki je manj zapletena, brez težav in učinkovitejša. Uporablja se lahko za programiranje, pridobivanje podatkov iz spleta in avtomatizacijo ročnih spletnih nalog. Poleg tega je Geb a navzkrižni brskalnik orodje za avtomatizacijsko testiranje.
Geb deluje kot razvijalsko orodje za avtomatizacijo sodelovanja med spletnimi brskalniki in spletno vsebino. Izvaja WebDriver v jeziku Groovy.
Lepota Gebovega orodja za testiranje je, da združuje najboljše lastnosti programskega jezika Groovy, jQuery, WebDriver in modeliranje predmetov strani za zmogljivo, robustno in dinamično preverjanje vsebine, izbiro in spletno interakcijo.
Zaradi česar je Geb edinstven v primerjavi z drugimi orodja za avtomatizacijo na trgu je njegova sintaksa. Podobno je jQuery, ki se običajno uporablja za enostavno poizvedovanje po straneh HTML. Drugič, ima integrirano podporo za vzorec Page Object.
Geb nudi veliko pomoč za funkcionalno spletno testiranje z integracijo z nekaterimi široko uporabljenimi in običajnimi testnimi platformami, vključno z Spock , Grali, JUnit , Kumara-JVM , TestNG itd. V nadaljevanju tega članka bomo videli, kako je mogoče Geb integrirati z ogrodjem Grails.
Kaj se boste naučili:
- Praktična uporaba
- Prednosti
- Pogoji
- Kako začeti
- Naučite se s primerom
- Preverjanje veljavnosti zbirke podatkov s pomočjo skripta Geb:
- Nekaj uporabnih metod v Gebu
- Pomanjkljivosti tega orodja
- Več virov:
- Zaključek
- Priporočeno branje
Praktična uporaba
Kot je bilo že omenjeno v uvodu te vadnice Geb, jo lahko uporabimo:
- Kot orodje za testiranje v več brskalnikih, kot so chrome, Firefox, Internet Explorer itd. (Isti skript za avtomatizacijo lahko zaženete v različnih brskalnikih za izvajanje spletnega testiranja vaše aplikacije.)
- Za avtomatizacijo uporabnikovega sprejema in funkcionalnih preizkusov
- Za avtomatizacijo testnih scenarijev, ustvarjenih za funkcionalno ali spletno testiranje katere koli aplikacije.
- Zajema testiranje od konca do konca, vključno s preverjanjem uporabniškega vmesnika (User Interface) in preverjanjem DB (baze podatkov).
- Kot orodje za razvijalce za avtomatizacijo interakcije med spletnim brskalnikom in spletno vsebino.
Prednosti
- Geb je brezplačno odprtokodno orodje. Licenciran je pod licenco Apache, različica 2.0.
- Preprosto in enostavno za avtomatizacijo spletnega testiranja.
- Gebovi Page Objects in Groovy DSL omogočajo, da so testi čitljivi do te mere, da so skoraj videti kot navadna angleščina.
- Hitro izvaja teste in tako prihrani čas in stroške testiranja.
- Združljiv z različnimi brskalniki, kot so IE, Firefox, Chrome in HTMLUnit.
- Preizkuse izvaja v resničnem brskalniku. Kot da bi testirali v resničnem okolju - tistem, ki bi ga videl uporabnik.
- To olajša regresijsko testiranje. Zaženete lahko avtomatizirane testne primere Geb, da preverite, ali se katera od obstoječih funkcij popravi po popravku ali spremembi aplikacije.
- Med uporabo Geba za avtomatizacijsko testiranje so potrebne minimalne spremembe testne kode, če v aplikaciji pride do sprememb uporabniškega vmesnika. Torej zmanjšuje napor in podvajanje kode.
- Pomaga pri 360-stopinjski (ali največji) pokritosti s preizkusi znotraj ene same skripte.
Pogoji
Preden začnemo, moramo prenesti in namestiti programsko opremo. V osrednjem repozitoriju Maven je Geb na voljo kot en kozarec z jedrom Geb. Klikni tukaj da ga namestite na vaš računalnik.
Za delovanje Geba na vaši napravi boste potrebovali zgornji kozarec Geb-core, implementacijo spletnega gonilnika in kozarec za podporo selena.
Glejte spodnji razdelek o namestitvi in uporabi knjige Geb, da namestite orodje in ga zaženete => Geb priročnik za namestitev in uporabo .
Kako začeti
Kot smo že omenili, je Geb mogoče integrirati z različnimi okviri za testiranje.
Glede na izbrani okvir boste morali namestiti ustrezen vtičnik.
Na primer : Grali ( Grali je zelo znan okvir za spletne aplikacije) za pisanje testnih skriptov za avtomatizacijo in avtomatizacijo testnih scenarijev. Če želite Geb uporabiti za preizkušanje funkcionalnosti Grails, lahko od tu namestite ustrezen vtičnik grails-geb plugin . Ta vtičnik obravnava baseUrl in poročilaDir postavke konfiguracije.
Naučite se s primerom
Naj zdaj pokažem, kako napisati skript Geb za avtomatizacijo testnega scenarija.
Vzemite spodnji testni scenarij:
ID scenarija preizkusa | Pomoč za testiranje programske opreme-1 | ID testnega primera | Pomoč za testiranje programske opreme -1A |
Izhod | |||
Opis testnega primera | Preverite stran Softwaretestinghelp.com prek iskalnika | Status skripte za avtomatizacijo | V delu |
Predpogoj | 1 Brskalnik 2. iskalnik 3. spletno mesto - Softwaretestinghelp.com mora obstajati | Predpogojni skript | NA |
Izvedbeni koraki so:
Zaženite Googlov iskalnik |
Preverite, ali je bil iskalnik uspešno naložen |
V iskalno polje vnesite softwaretestinghelp.com |
Počakajte, da se rezultati naložijo |
Preverite, ali prva povezava v rezultatih vodi do softwaretestinghelp.com |
Če je odgovor da, odprite povezavo. |
Počakajte, da se spletno mesto odpre. |
Tu je skript orodja za avtomatizacijo Geb za zgornji scenarij:
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' } }
Zdaj lahko poskusite sami napisati preprost skript GEB, pri čemer se sklicujete na zgornji primer.
Preverjanje veljavnosti zbirke podatkov s pomočjo skripta Geb:
Vsako testiranje avtomatizacije spletnih strani je razdeljeno na tri dele:
- Preverjanje uporabniškega vmesnika - Preverjanje veljavnosti podatkov, ki se odražajo v uporabniškem vmesniku (sprednji del), pred in po zagonu scenarija samodejnega preizkusa.
- Preverjanje DB - Preverjanje veljavnosti podatkov, ki se odražajo v zbirki podatkov (backend) pred in po zagonu scenarija samodejnega preizkusa.
- Dejanski preizkusni tok / potek skripta.
Skript Geb, napisan za avtomatizacijo preskusnega scenarija, lahko vsebuje kodo za vse zgornje tri razdelke.
Skript Geb v zgornjem odseku primera je bil namenjen avtomatizaciji preskusnega toka in preverjanju uporabniškega vmesnika. Podobno lahko napišete testni skript za preverjanje veljavnosti baze podatkov.
Za kateri koli preizkus preverjanja veljavnosti DB lahko vedno uporabite spodnjo predlogo kot oris kode:
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 }
Nekaj uporabnih metod v Gebu
- Če scenarij testnega primera vključuje več zavihkov in oken: Kadar koli naletite na aplikacijo, ki odpre nova okna ali zavihke, Na primer ko kliknete povezavo z naborom ciljnih atributov, lahko uporabite withWindow () in withNewWindow () metode za izvajanje kode v kontekstu drugih oken.
- Način pogona: Razred brskalnika vsebuje statično metodo - pogon () . Ta metoda daje dodatno udobje Gebovim skriptom. Vsi klici metode najvišje ravni in dostopi do lastnosti pomenijo, da so proti brskalniku.
- Pošiljanje prošenj: Primeri brskalnika podpirajo a baseUrl lastnost, ki je uporabljena za razrešitev vseh relativnih URL-jev. Običajno je najbolj priporočljivo, da osnovne URL-je definirate s poševnicami in da ne uporabljate poševnic na relativnih URL-jih.
- Spreminjanje strani: S pomočjo koristnega stran () metode je možno spremeniti primerek strani, ne da bi zahtevali novo zahtevo.
- Zapiranje brskalnika: Objekt brskalnika ponuja prenehati() in zapri () metode (ki preprosto predajo nalogo osnovnemu gonilniku).
Pomanjkljivosti tega orodja
- Rojen izvrši WebDriver v jeziku Groovy. Celotna ideja tega je izkoristiti WebDriver lažje in preprostejše. Torej, ko uporabljate Webdriver prek Geba, bo podprt samo programski jezik Groovy. Ampak, če uporabljate neposredno WebDriver , podpira številne jezike, kot so Ruby, C #, Python, Java.
- Ne bi predlagal uporabe Geba za majhne projekte - deluje izjemno pri ogromnih nalogah, vendar zadeva majhne dejavnosti. Če vaša spletna aplikacija ne vsebuje več strani in obrazcev, skozi katere morajo prehajati informacije, boste morda ugotovili, da vas Geb resnično stane dodatnega časa, kot ga prihrani.
- Zelo natančno je, kakšno okolje uporablja vaša spletna aplikacija. Geb mora biti dobro vključen v določeno okolje, da bo lahko dobro deloval.
Več virov:
- Oglejte si Knjiga o Gebu tukaj za podrobno dokumentacijo in primere.
- Tu je primer projekta, ki prikazuje integracija Geba z grali .
Zaključek
Geb je zelo koristen pri avtomatizaciji scenarijev testnih primerov. Koristno je avtomatizirati spletno, funkcionalno in uporabniško testiranje. Podpira več brskalnikov in ga je mogoče integrirati z različnimi okviri. Združuje moč WebDriverja, eleganco jQuery Selection, robustnost modeliranja strani in izraznost Groovyja.
Gebovi skripti so tako za razvijalce kot uporabniku prijazni in zagotavljajo boljšo pokritost s preizkusi in pospešeno testiranje, hkrati pa so hkrati učinkovitejši.
O avtorju: To je gostje Priya K. Ima 4+ let izkušenj v IT storitvah s strokovnim znanjem na področju testiranja in podpore za različne aplikacije.
Poizvedbe o testiranju avtomatizacije Geb lahko objavite v komentarjih.
Priporočeno branje
- Vadnica za orodje za preizkušanje dostopnosti WAVE
- Ranorexova vadnica: zmogljivo orodje za testiranje namizja, spleta in mobilnih naprav
- Sikuli GUI Automation Test Tool - Priročnik za začetnike 2. del
- Vadnica za preverjanje kakovosti Parrot: Pregled orodij za funkcionalno preskušanje med brskalniki
- Najboljša orodja za testiranje programske opreme 2021 [QA Test Automation Tools]
- Vadnice za globinsko zasenčenje za začetnike
- Kaj je testiranje avtomatizacije (Ultimate Guide to Start Test Automation)
- Vadnica za parasoft SOAtest: orodje za preizkušanje API-jev brez skript