geb tutorial browser automation testing using geb tool
Geb (vyslovuje se „jeb“) je odpovědí na výzvy automatizace prohlížeče. Jedná se o velmi účinný nástroj k provádění automatizačního testování přes web.
Geb vznikl z potřeby učinit automatizaci prohlížeče (původně pro testování webu) méně komplikovanou, bezproblémovou a efektivnější. Může být použit k programování, extrakci dat z webu a automatizaci manuálních webových úkolů. Navíc je Geb a cross-browser nástroj pro testování automatizace.
Geb funguje jako vývojový nástroj pro automatizaci spolupráce mezi webovými prohlížeči a webovým obsahem. Spouští WebDriver v jazyce Groovy.
Krása testovacího nástroje Geb spočívá v tom, že kombinuje nejlepší vlastnosti programovacího jazyka Groovy, jQuery, WebDriver a Page Object Modeling, které poskytují výkonnou, robustní a dynamickou kontrolu obsahu, výběr a webovou interakci.
V čem je Geb jedinečný ve srovnání s ostatními automatizační testovací nástroje dostupné na trhu je jeho syntaxe. Je to podobné jako jQuery, které se běžně používá pro snadné dotazy na stránky HTML. Zadruhé má integrovanou podporu pro vzor Page Object.
Geb poskytuje velkou nápovědu pro funkční testování webu prostřednictvím integrace s některými široce používanými a běžnými testovacími platformami včetně Spocku , Grály, JUnit , Okurka-JVM , TestNG atd. Uvidíme, jak lze Geb integrovat do rámce Grails v další části tohoto článku.
Co se naučíte:
- Praktická použití
- Výhody
- Předpoklady
- Začínáme
- Učte se s příkladem
- Testování ověření databáze pomocí skriptu Geb:
- Několik užitečných metod v Gebu
- Nevýhody tohoto nástroje
- Další zdroje:
- Závěr
- Doporučené čtení
Praktická použití
Jak již bylo uvedeno v úvodu tohoto tutoriálu Geb, lze jej použít:
- Jako testovací nástroj ve více prohlížečích, jako je Chrome, Firefox, Internet Explorer atd. (Stejný automatizační skript lze spustit v různých prohlížečích a provést webové testování vaší aplikace.)
- Automatizovat akceptaci uživatele a funkční testovací případy.
- Automatizace testovacích scénářů vytvořených pro funkční nebo webové testování jakékoli aplikace.
- Pokrýt end-to-end testování včetně ověření uživatelského rozhraní (uživatelské rozhraní) a ověření databáze (databáze).
- Jako vývojový nástroj pro automatizaci interakce mezi webovým prohlížečem a webovým obsahem.
Výhody
- Geb je bezplatný nástroj s otevřeným zdrojem. Je licencován pod licencí Apache, verze 2.0.
- Snadné a snadné automatizovat testování webu.
- Díky Geb's Page Objects a Groovy DSL jsou testy čitelné do té míry, že téměř vypadají jako obyčejná angličtina.
- Spouští testy rychle a šetří tak čas a náklady na testování.
- Kompatibilní s různými prohlížeči, jako jsou IE, Firefox, Chrome a HTMLUnit.
- Provádí testy v reálném prohlížeči. Je to, jako by testování v reálném prostředí - v tom, které by uživatel viděl.
- Usnadňuje regresní testování. Můžete spustit automatizované testovací případy Geb, abyste zkontrolovali, zda po opravě nebo změně v aplikaci nedochází k narušení existujících funkcí.
- Při používání Geb pro testování automatizace jsou vyžadovány minimální změny testovacího kódu, pokud ve vaší aplikaci dojde ke změnám uživatelského rozhraní. Snižuje tedy úsilí a duplikaci kódu.
- Pomáhá 360 stupňů (nebo maximálně) testování pokrytí v rámci jediného skriptu.
Předpoklady
Než začneme, musíme si stáhnout a nainstalovat software. V centrálním úložišti Maven je Geb k dispozici jako jedna sklenice s jádrem Geb. Klikněte zde jej nainstalujete na svůj stroj.
Abyste mohli Geb pracovat na vašem počítači, budete potřebovat výše uvedenou jar Geb-core, implementaci webového ovladače a jar pro podporu selenu.
Chcete-li nainstalovat nástroj a spustit jej, podívejte se do níže uvedené části instalace a použití v knize Geb => Manuál pro instalaci a používání Geb .
Začínáme
Jak již bylo řečeno, Geb lze integrovat s různými testovacími rámci.
V závislosti na zvoleném rámci budete muset nainstalovat příslušný plugin.
Například : Grály ( Grály je velmi slavný rámec pro webové aplikace) pro psaní automatizačních testovacích skriptů a automatizaci testovacích scénářů. Chcete-li použít Geb pro své funkční testování Grails, můžete si odtud nainstalovat příslušný plugin grails-geb plugin . Tento plugin zpracovává baseUrl a zprávyDir položky konfigurace.
Učte se s příkladem
Dovolte mi nyní ukázat, jak napsat skript Geb pro automatizaci testovacího scénáře.
Vezměte níže uvedený scénář testu:
ID testovacího scénáře | Softwaretestinghelp-1 | ID testovacího případu | Softwaretestinghelp -1A |
Výstup | |||
Popis testovacího případu | Ověřte stránku Softwaretestinghelp.com pomocí vyhledávače | Stav skriptu automatizace | Probíhá |
Předpoklad | 1 Prohlížeč 2. vyhledávač 3. web - Softwaretestinghelp.com by měl existovat | Předpoklad skriptu | NA |
Kroky provedení jsou:
Spusťte vyhledávač Google |
Ověřte, zda byl vyhledávač úspěšně načten |
Do vyhledávacího pole zadejte softwaretestinghelp.com |
Počkejte, až se načtou výsledky |
Ověřte, zda první odkaz ve výsledcích směřuje na softwaretestinghelp.com |
Pokud ano, otevřete odkaz. |
Počkejte, až se web otevře. |
Zde je skript nástroje automatizace Geb pro výše uvedený scénář:
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' } }
Nyní se můžete pokusit napsat jednoduchý skript GEB sami odkazováním na výše uvedený příklad.
Testování ověření databáze pomocí skriptu Geb:
Jakékoli testování webové automatizace je rozděleno do tří částí:
- Ověření uživatelského rozhraní - Ověření dat zobrazených na uživatelském rozhraní (front-end) před a po spuštění scénáře automatizačního testu.
- Ověření DB - Ověření dat odražených v databázi (backend) před a po spuštění scénáře automatizačního testu.
- Skutečný testovací tok / tok skriptu.
Skript Geb napsaný k automatizaci testovacího scénáře může obsahovat kód pro všechny výše uvedené tři oddíly.
Skript Geb ve výše uvedené části příkladu byl pro automatizaci testovacího toku a ověření uživatelského rozhraní. Podobně můžete napsat testovací skript pro ověření databáze.
U libovolného ověřovacího testu DB můžete vždy použít níže uvedenou šablonu jako osnovu pro váš kód:
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 }
Několik užitečných metod v Gebu
- Pokud váš scénář testovacího případu zahrnuje více karet a oken: Kdykoli narazíte na aplikaci, která otevírá nová okna nebo karty, Například při kliknutí na odkaz se sadou cílových atributů můžete použít withWindow () a withNewWindow () metody ke spuštění kódu v kontextu jiných oken.
- Způsob pohonu: Třída prohlížeče obsahuje statickou metodu - řídit() . Tato metoda poskytuje Geb skriptování další pohodlí. Veškerá volání metod nejvyšší úrovně a přístupy k vlastnostem jsou implicitně proti prohlížeči.
- Žádosti: Instance prohlížeče podporují a baseUrl vlastnost, která se používá k vyřešení všech relativních adres URL. Obvykle je nejvýhodnější definovat základní adresy URL koncovými lomítky a nepoužívat úvodní lomítka na relativních adresách URL.
- Změna stránky: S pomocí užitečné strana() metody, je možné změnit instanci stránky bez zadání nového požadavku.
- Ukončení prohlížeče: Objekt prohlížeče poskytuje přestat() a zavřít() metody (které jednoduše předají úkol základnímu ovladači).
Nevýhody tohoto nástroje
- narozený vykonává WebDriver v jazyce Groovy. Celá myšlenka za tím je využít WebDriver jednodušší a jednodušší. Takže pokud používáte Webdriver přes Geb, bude podporován pouze programovací jazyk Groovy. Ale pokud přímo používáte WebDriver , podporuje mnoho jazyků jako Ruby, C #, Python, Java.
- Nechtěl bych navrhovat použití Geb pro malé projekty - Funguje to skvěle pro obrovské úkoly, ale zasáhne malé aktivity. Pokud vaše webová aplikace neobsahuje více stránek a formulářů, kterými musí informace procházet, můžete zjistit, že vás Geb opravdu stojí víc času, než kolik ušetří.
- Je velmi konkrétní, jaké prostředí vaše webová aplikace využívá. Geb musí být dobře integrován do konkrétního prostředí, aby fungoval dobře.
Další zdroje:
- Podívejte se na Kniha Geba zde pro podrobnou dokumentaci a příklady.
- Zde je ukázkový projekt ukazující integrace Geb s grály .
Závěr
Geb je velmi užitečný při automatizaci scénářů testovacích případů. Je užitečné automatizovat webové, funkční a uživatelské akceptační testování. Podporuje více prohlížečů a lze jej integrovat do různých rámců. Kombinuje sílu WebDriveru, eleganci jQuery Selection, robustnost Page Object Modeling a expresivitu Groovy.
Skripty Geb jsou vývojářské i uživatelsky přívětivé a poskytují lepší pokrytí testem a zrychlené testování a současně zvyšují jeho efektivitu.
O autorovi: Toto je příspěvek od Priyy K. Má více než 4 roky zkušeností v oblasti IT služeb s odbornými znalostmi v oblasti testování a podporou různých aplikací.
Neváhejte a pošlete své dotazy na testování automatizace Geb v komentářích.
Doporučené čtení
- Výukový program pro testování přístupnosti WAVE
- Výukový program Ranorex: Výkonný nástroj pro automatizaci stolních, webových a mobilních automatizačních nástrojů
- Nástroj pro testování automatizace grafického uživatelského rozhraní Sikuli - Průvodce pro začátečníky Část 2
- Výukový program Parrot QA: Recenze funkčního testovacího nástroje pro různé prohlížeče
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Výukové programy pro zatmění do hloubky pro začátečníky
- Co je to Automation Testing (Ultimate Guide to Start Test Automation)
- Výukový program Parasoft SOAtest: Nástroj pro testování API bez skriptů