geb tutorial browser automation testing using geb tool
Geb (izgovara se 'jeb') odgovor je na izazove automatizacije preglednika. To je vrlo učinkovit alat za provođenje automatiziranih ispitivanja putem weba.
Geb je nastao iz potrebe da automatizaciju preglednika (u početku za web testiranje) učini manje složenom, bez muke i učinkovitijom. Može se koristiti za programiranje, izdvajanje podataka s weba i automatizaciju ručnih web zadataka. Uz to, Geb je unakrsni preglednik alat za automatizaciju ispitivanja.
Geb funkcionira kao razvojni alat za automatizaciju suradnje između web preglednika i web sadržaja. Pokreće WebDriver na Groovy jeziku.
Ljepota Geb alata za testiranje je u tome što kombinira najbolje značajke programskog jezika Groovy, jQuery, WebDriver i modeliranje objektnih stranica kako bi se omogućila snažna, robusna i dinamična inspekcija, odabir i interakcija sadržaja na mreži.
Po čemu je Geb jedinstven u usporedbi s drugima alati za automatizaciju dostupna na tržištu je njegova sintaksa. Sličan je jQueryju koji se obično koristi za lako postavljanje HTML stranica. Drugo, ima integriranu podršku za obrazac Page Object.
Geb pruža veliku pomoć za funkcionalno web testiranje integracijom s nekim široko korištenim i uobičajenim platformama za testiranje, uključujući Spock , Gralovi, JUNIT , Krastavac-JVM , TestNG, itd. Vidjet ćemo kako se Geb može integrirati s Grailsovim okvirom u kasnijem dijelu ovog članka.
Što ćete naučiti:
- Praktična upotreba
- Prednosti
- Preduvjeti
- Početak rada
- Učite na primjeru
- Testiranje provjere valjanosti baze podataka putem Geb skripte:
- Nekoliko korisnih metoda u Gebu
- Nedostaci ovog alata
- Više resursa:
- Zaključak
- Preporučena literatura
Praktična upotreba
Kao što je već raspravljeno u uvodu ovog Geb vodiča, može se koristiti:
- Kao alat za testiranje na više preglednika kao što su chrome, Firefox, Internet Explorer itd. (Ista skripta automatizacije može se pokrenuti na različitim preglednicima za provođenje web testiranja vaše aplikacije.)
- Za automatizaciju slučajeva prihvaćanja korisnika i funkcionalnih testnih slučajeva.
- Za automatizaciju scenarija testiranja stvorenih za funkcionalno ili web testiranje bilo koje aplikacije.
- Obuhvatiti testiranje od kraja do kraja, uključujući provjeru korisničkog sučelja (User Interface) i provjeru DB (baze podataka).
- Kao razvojni alat za automatizaciju interakcije između web preglednika i web sadržaja.
Prednosti
- Geb je besplatan alat otvorenog koda. Licenciran je pod licencom Apache, verzija 2.0.
- Jednostavno i jednostavno za automatizaciju web testiranja.
- Gebovi Page Objects i Groovy DSL čine testove čitljivima do te mjere da gotovo izgledaju kao običan engleski.
- Brzo pokreće testove i na taj način štedi vrijeme i troškove testiranja.
- Kompatibilan s različitim preglednicima kao što su IE, Firefox, Chrome i HTMLUnit.
- Izvršava testove u stvarnom pregledniku. To je kao da testirate u stvarnom okruženju - onom koje bi korisnik vidio.
- To olakšava regresijsko testiranje. Možete pokrenuti Geb automatizirane test slučajeve kako biste provjerili kvari li se neka postojeća funkcionalnost nakon popravka ili promjene u aplikaciji.
- Dok koristite Geb za automatsko testiranje, potrebne su minimalne promjene kodova za testiranje ako u vašoj aplikaciji postoje promjene korisničkog sučelja. Dakle, smanjuje napor i dupliciranje koda.
- Pomaže pokrivenost testiranja od 360 stupnjeva (ili maksimalno) unutar jedne skripte.
Preduvjeti
Prije početka moramo preuzeti i instalirati softver. U središnjem spremištu Maven, Geb je dostupan kao jedna staklenka s jezgrom Geb. Kliknite ovdje da biste ga instalirali na svoj stroj.
Trebat će vam gornja jar s jezgrom Geb, implementacija web upravljačkog programa i staklenka za podršku selena da bi Geb radio na vašem stroju.
Molimo pogledajte donji odjeljak o instalaciji i korištenju Gebove knjige kako biste instalirali alat i pokrenuli ga => Geb priručnik za instalaciju i uporabu .
Početak rada
Kao što je već spomenuto, Geb se može integrirati s različitim okvirima za testiranje.
Ovisno o odabranom okviru, morat ćete instalirati povezani dodatak.
Na primjer : Gralovi ( Gralovi je vrlo poznati okvir za web aplikacije) za pisanje skripti za automatizaciju i automatizaciju testnih scenarija. Ako želite koristiti Geb za svoje Grails funkcionalno testiranje, ovdje možete instalirati povezani dodatak dodatak grails-geb . Ovaj dodatak obrađuje baseUrl i izvještava red stavke konfiguracije.
Učite na primjeru
Dopustite mi sada da pokažem kako napisati Geb skriptu za automatizaciju testnog scenarija.
Uzmite donji scenarij ispitivanja:
ID scenarija testa | Pomoć za testiranje softvera-1 | Id testnog slučaja | Softwaretestinghelp -1A |
Izlaz | |||
Opis testnog slučaja | Provjerite stranicu Softwaretestinghelp.com putem tražilice | Status skripte za automatizaciju | U nastajanju |
Preduvjet | 1 Preglednik 2. tražilica 3. web stranica - Softwaretestinghelp.com bi trebao postojati | Preduvjetna skripta | NA |
Koraci izvršenja su:
Pokrenite google tražilicu |
Provjerite je li tražilica uspješno učitana |
U okvir za pretraživanje unesite softwaretestinghelp.com |
Pričekajte da se rezultati učitaju |
Provjerite vodi li prva veza u rezultatima na softwaretestinghelp.com |
Ako je odgovor da, otvorite vezu. |
Pričekajte dok se web stranica ne otvori. |
Evo skripte alata za automatizaciju Geb za gornji 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' } }
Sada možete pokušati sami napisati jednostavnu GEB skriptu pozivajući se na gornji primjer.
Testiranje provjere valjanosti baze podataka putem Geb skripte:
Svako testiranje automatizacije weba podijeljeno je u tri dijela:
- Provjera korisničkog sučelja - Provjera valjanosti podataka koji se odražavaju na korisničkom sučelju (prednji kraj) prije i nakon pokretanja scenarija automatskog ispitivanja.
- DB provjera valjanosti - Provjera valjanosti podataka koji se odražavaju u bazi podataka (pozadina) prije i nakon pokretanja scenarija automatskog testiranja.
- Stvarni tijek testa / protok skripte.
Geb skripta napisana za automatizaciju testnog scenarija može sadržavati kod za sva tri gornja odjeljka.
Gebova skripta u gornjem odjeljku primjera namijenjena je automatizaciji probnog tijeka i provjeri korisničkog sučelja. Slično tome, možete napisati testnu skriptu za provjeru valjanosti baze podataka.
Za bilo koji test provjere valjanosti DB, uvijek možete koristiti donji predložak kao nacrt koda:
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 }
Nekoliko korisnih metoda u Gebu
- Kada scenarij testnog slučaja uključuje više kartica i prozora: Kad god naiđete na aplikaciju koja otvara nove prozore ili kartice, Na primjer kada kliknete na vezu s postavljenim ciljnim atributom, možete se poslužiti withWindow () i withNewWindow () metode za izvršavanje koda u kontekstu drugih prozora.
- Način pogona: Klasa preglednika sadrži statičku metodu - voziti() . Ova metoda daje dodatnu pogodnost Gebovom skriptiranju. Svi pozivi metode najviše razine i pristupi svojstvima podrazumijevaju se da su protiv preglednika.
- Podnošenje zahtjeva: Primjeri preglednika podržavaju a baseUrl svojstvo koje se koristi za rješavanje svih relativnih URL-ova. Obično je najpoželjnije definirati svoje osnovne URL-ove pratećim kosim crtama, a ne koristiti vodeće kose crte na relativnim URL-ovima.
- Promjena stranice: Uz pomoć korisnih stranica() metode, moguće je promijeniti instancu stranice bez podnošenja novog zahtjeva.
- Zatvaranje preglednika: Objekt preglednika pruža prestati() i Zatvoriti() metode (koje jednostavno predaju zadatak osnovnom pokretačkom programu).
Nedostaci ovog alata
- Rođen izvršava WebDriver na jeziku Groovy. Cijela ideja koja stoji iza toga je iskoristiti WebDriver lakše i jednostavnije. Dakle, kada koristite Webdriver putem Geba, bit će podržan samo programski jezik Groovy. Ali, ako izravno koristite WebDriver , podržava mnoge jezike poput Ruby, C #, Python, Java.
- Ne bih sugerirao upotrebu Geba za male projekte - izvrsno djeluje za ogromne zadatke, ali pogađa male aktivnosti. Ako vaša web aplikacija ne sadrži više stranica i obrazaca kroz koje informacije trebaju prolaziti, možda ćete otkriti da Geb stvarno košta dodatno vrijeme nego što ga štedi.
- Vrlo je precizno o tome koje okruženje koristi vaša web stranica. Geb mora biti dobro integriran u određeno okruženje kako bi mogao dobro funkcionirati.
Više resursa:
- Pogledajte Knjiga o Gebu ovdje za detaljnu dokumentaciju i primjere.
- Evo primjera projekta koji prikazuje integracija Geba s gralovima .
Zaključak
Geb je vrlo koristan u automatizaciji scenarija testnih slučajeva. Korisno je automatizirati web, funkcionalno i korisničko testiranje. Podržava više preglednika i može se integrirati s različitim okvirima. Kombinira snagu WebDrivera, eleganciju jQuery Selection-a, robusnost modeliranja objektnih stranica i izražajnost Groovyja.
Geb skripte su i razvojne i korisničke, pružajući bolju pokrivenost testima i ubrzano testiranje, a istovremeno čineći ih učinkovitijima.
O autoru: Ovo je gost Poya K. Ima više od 4 godine iskustva u IT uslugama sa stručnošću u testiranju i podrškom za razne programe.
Slobodno objavite svoje upite o testiranju automatizacije Geb u komentarima.
Preporučena literatura
- Vodič za alat za testiranje pristupačnosti WAVE-a
- Vodič za Ranorex: Moćan alat za testiranje radne površine, weba i mobitela
- Sikuli GUI alat za automatizaciju - Vodič za početnike, dio 2
- Vodič za QA Parrot: Pregled alata za testiranje više preglednika
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)
- Dubinski vodiči za pomračenje za početnike
- Što je ispitivanje automatizacije (konačni vodič za pokretanje automatizacije ispitivanja)
- Vodič za Parasoft SOAtest: Alat za testiranje API-ja bez skripti