geb tutorial browser automation testing using geb tool
Geb (vyslovuje sa „jeb“) je odpoveďou na výzvy automatizácie prehľadávača. Je to veľmi efektívny nástroj na vykonávanie automatizačného testovania na webe.
Spoločnosť Geb vznikla z potreby urobiť automatizáciu prehliadača (pôvodne pre webové testovanie) menej komplikovanou, bezproblémovou a efektívnejšou. Môže sa použiť na programovanie, extrakciu údajov z webu a automatizáciu manuálnych webových úloh. Navyše, Geb je a cross-browser nástroj na testovanie automatizácie.
Geb funguje ako vývojársky nástroj na automatizáciu spolupráce medzi webovými prehliadačmi a webovým obsahom. Prevádzkuje WebDriver v jazyku Groovy.
Krása testovacieho nástroja Geb spočíva v tom, že kombinuje najlepšie vlastnosti programovacieho jazyka Groovy, jQuery, WebDriver a Page Object Modeling, ktoré poskytujú výkonnú, robustnú a dynamickú kontrolu obsahu, výber a interakciu s webom.
Čím je Geb jedinečný v porovnaní s ostatnými automatizačné testovacie nástroje dostupná na trhu je jeho syntax. Je to podobné ako s jQuery, ktoré sa bežne používa na jednoduché vyhľadanie stránok HTML. Po druhé, má integrovanú podporu pre vzor Page Object.
Geb poskytuje veľkú pomoc pri funkčnom webovom testovaní prostredníctvom integrácie s niektorými široko používanými a bežnými testovacími platformami vrátane Spock , Grály, JUnit , Uhorka-JVM , TestNG atď. Uvidíme, ako možno Geb integrovať do rámca Grails v ďalšej časti tohto článku.
Čo sa dozviete:
- Praktické použitie
- Výhody
- Predpoklady
- Začíname
- Učte sa na príklade
- Testovanie overenia databázy pomocou skriptu Geb:
- Niekoľko užitočných metód v Gebe
- Nevýhody tohto nástroja
- Ďalšie zdroje:
- Záver
- Odporúčané čítanie
Praktické použitie
Ako už bolo uvedené v úvode tohto tutoriálu Geb, je možné ho použiť:
- Ako testovací nástroj vo viacerých prehliadačoch, ako sú Chrome, Firefox, Internet Explorer, atď. (Rovnaký automatizačný skript je možné spustiť v rôznych prehliadačoch a vykonať tak webové testovanie vašej aplikácie.)
- Na automatizáciu akceptovania používateľmi a funkčných testovacích prípadov.
- Automatizuje testovacie scenáre vytvorené na funkčné alebo webové testovanie akejkoľvek aplikácie.
- Na pokrytie komplexného testovania vrátane overenia používateľského rozhrania a overenia databázy (DB).
- Ako vývojársky nástroj na automatizáciu interakcie medzi webovým prehliadačom a webovým obsahom.
Výhody
- Geb je bezplatný nástroj otvoreného zdroja. Je licencovaný pod licenciou Apache License, verzia 2.0.
- Jednoduchá a jednoduchá automatizácia testovania webu.
- Geb’s Page Objects a Groovy DSL robia testy čitateľnými do tej miery, že vyzerajú takmer ako obyčajná angličtina.
- Testy prebiehajú rýchlo, a tým šetria čas a náklady na testovanie.
- Kompatibilné s rôznymi prehliadačmi, ako sú IE, Firefox, Chrome a HTMLUnit.
- Testy vykonáva v skutočnom prehliadači. Je to akoby testovanie v skutočnom prostredí - v prostredí, ktoré by používateľ videl.
- Uľahčuje to regresné testovanie. Môžete spustiť automatizované testovacie prípady Geb a skontrolovať, či sa po oprave alebo zmene v aplikácii nejaká existujúca funkčnosť nezruší.
- Pri používaní programu Geb na testovanie automatizácie sú potrebné minimálne zmeny testovacieho kódu, ak vo vašej aplikácii dôjde k zmenám používateľského rozhrania. Znižuje to úsilie a duplikáciu kódu.
- Pomáha 360 stupňov (alebo maximálne) testovanie pokrytia v rámci jedného skriptu.
Predpoklady
Skôr ako začneme, musíme si stiahnuť a nainštalovať softvér. V centrálnom úložisku Maven je Geb k dispozícii ako jedna sklenená nádoba s jadrom Geb. Kliknite tu nainštalovať do svojho počítača.
Aby ste mohli Geb pracovať na vašom počítači, budete potrebovať vyššie uvedenú jar Geb-core, implementáciu webového ovládača a jar na podporu selénu.
Inštaláciu nástroja a jeho spustenie nájdete v nasledujúcej časti o inštalácii a použití knihy Geb => Príručka k inštalácii a použitiu Geb .
Začíname
Ako už bolo uvedené, Geb je možné integrovať do rôznych testovacích rámcov.
V závislosti na zvolenom rámci budete musieť nainštalovať súvisiaci doplnok.
Napríklad : Grály ( Grály je veľmi slávny rámec pre webové aplikácie) na písanie automatizačných testovacích skriptov a automatizáciu testovacích scenárov. Ak chcete použiť program Geb na svoje funkčné testovanie Grails, môžete si odtiaľto nainštalovať súvisiaci doplnok doplnok grails-geb . Tento doplnok pracuje s baseUrl a správyRiad konfiguračné položky.
Učte sa na príklade
Teraz ukážem, ako napísať skript Geb na automatizáciu testovacieho scenára.
Vykonajte nasledujúci testovací scenár:
| ID testovacieho scenára | Softwaretestinghelp-1 | Id testovacieho prípadu | Softwaretestinghelp -1A |
| Východ | |||
| Popis testovacieho prípadu | Overte stránku Softwaretestinghelp.com pomocou vyhľadávacieho nástroja | Stav automatizačného skriptu | Prebieha |
| Predpoklad | 1 Prehliadač 2. vyhľadávač 3. web - Softwaretestinghelp.com by mal existovať | Nevyhnutný skript | NA |
Kroky vykonania sú:
| Spustite vyhľadávací nástroj Google |
| Skontrolujte, či bol vyhľadávač úspešne načítaný |
| Do vyhľadávacieho poľa zadajte softwaretestinghelp.com |
| Počkajte na načítanie výsledkov |
| Overte, či prvý odkaz vo výsledkoch smeruje na softwaretestinghelp.com |
| Ak áno, otvorte odkaz. |
| Počkajte, kým sa webová stránka otvorí. |
Tu je skript nástroja automatizácie Geb pre vyššie uvedený scenár:
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' } } Teraz sa môžete pokúsiť napísať jednoduchý GEB skript sami, s odkazom na vyššie uvedený príklad.
Testovanie overenia databázy pomocou skriptu Geb:
Akékoľvek testovanie automatizácie webu je rozdelené do troch častí:
- Overenie používateľského rozhrania - Overenie údajov zobrazených na používateľskom rozhraní (klientske rozhranie) pred a po spustení scenára automatizácie.
- Validácia DB - Overenie údajov prejavených v databáze (backend) pred a po spustení scenára automatizácie.
- Skutočný testovací tok / tok skriptov.
Skript Geb napísaný na automatizáciu testovacieho scenára môže obsahovať kód pre všetky vyššie uvedené tri časti.
Skript Geb v sekcii vyššie uvedeného príkladu slúžil na automatizáciu testovacieho toku a overenie používateľského rozhrania. Podobne môžete napísať testovací skript na overenie databázy.
Pre akýkoľvek test overenia databázy DB môžete ako obrys svojho kódu kedykoľvek použiť nasledujúcu šablónu:
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 } Niekoľko užitočných metód v Gebe
- Ak scenár vášho testovacieho prípadu obsahuje viac kariet a okien: Kedykoľvek narazíte na aplikáciu, ktorá otvára nové okná alebo karty, Napríklad pri kliknutí na odkaz so sadou cieľových atribútov môžete využiť withWindow () a withNewWindow () metódy na vykonávanie kódu v kontexte iných okien.
- Metóda pohonu: Trieda prehliadača obsahuje statickú metódu - jazda () . Táto metóda poskytuje Geb skriptovaniu ďalšie pohodlie. Všetky volania metód na najvyššej úrovni a prístupy k vlastnostiam sú implicitne v rozpore s prehliadačom.
- Požiadavky: Inštancie prehľadávača potvrdzujú a baseUrl vlastnosť, ktorá sa používa na vyriešenie všetkých relatívnych adries URL. Spravidla je najvýhodnejšie definovať základné adresy URL s koncovými lomkami a na relatívnych adresách URL nepoužívať úvodné lomky.
- Zmena stránky: S pomocou užitočné stránka () je možné zmeniť inštanciu stránky bez zadania novej požiadavky.
- Ukončenie prehľadávača: Objekt prehľadávača poskytuje skončiť () a Zavrieť() metódy (ktoré jednoducho odovzdajú úlohu základnému ovládaču).
Nevýhody tohto nástroja
- narodený vykonáva WebDriver v jazyku Groovy. Celá myšlienka je využiť WebDriver jednoduchšie a jednoduchšie. Takže keď používate Webdriver cez Geb, bude podporovaný iba programovací jazyk Groovy. Ale ak priamo používate WebDriver , podporuje mnoho jazykov ako Ruby, C #, Python, Java.
- Navrhovanie Geb pre malé projekty by som nenavrhoval - funguje to úžasne na obrovské úlohy, ale zasahuje to do malých aktivít. Ak vaša webová aplikácia neobsahuje viac stránok a formulárov, cez ktoré musia informácie prúdiť, môžete zistiť, že vás Geb skutočne stojí viac času, ako ušetrí.
- Je veľmi konkrétne to, aké prostredie využíva vaša webová aplikácia. Geb musí byť dobre integrovaný do konkrétneho prostredia, aby fungoval dobre.
Ďalšie zdroje:
- Pozrite sa na Kniha Geb tu pre podrobnú dokumentáciu a príklady.
- Tu je vzorový projekt zobrazujúci integrácia Geb s grálmi .
Záver
Geb je veľmi užitočný pri automatizácii scenárov testovacích prípadov. Je užitočné automatizovať webové, funkčné a užívateľské akceptovacie testy. Podporuje viac prehľadávačov a je možné ho integrovať do rôznych rámcov. Kombinuje silu WebDriveru, eleganciu jQuery Selection, robustnosť Page Object Modeling a expresivitu Groovy.
Skripty Geb sú vývojárske aj užívateľsky prívetivé a poskytujú lepšie pokrytie testami a zrýchlené testovanie, pričom sú súčasne efektívnejšie.
O autorovi: Toto je príspevok od Priya K. Má viac ako 4 roky skúseností v oblasti IT služieb s odbornými znalosťami v oblasti testovania a podpory rôznych aplikácií.
Neváhajte a pošlite svoje dotazy na testovanie automatizácie Geb v komentároch.
Odporúčané čítanie
- Výukový program pre testovanie prístupnosti WAVE
- Výukový program Ranorex: Výkonný nástroj na testovanie automatizácie počítačov, webových stránok a mobilných zariadení
- Nástroj na testovanie automatizácie grafického používateľského rozhrania Sikuli - Príručka pre začiatočníkov, časť 2
- Výukový program pre Parrot QA: Kontrola funkčného testovacieho nástroja naprieč prehliadačmi
- Najlepšie nástroje na testovanie softvéru 2021 (QA Test Automation Tools)
- Hĺbkové návody pre zatmenie pre začiatočníkov
- Čo je to Automation Testing (Ultimate Guide to Start Test Automation)
- Výukový program Parasoft SOAtest: Bezskriptový testovací nástroj API