geb tutorial browser automation testing using geb tool
Geb (pronunțat „jeb”) este răspunsul la provocările automatizării browserului. Este un instrument foarte eficient pentru a efectua teste de automatizare pe web.
Geb a apărut din necesitatea de a face automatizarea browserului (inițial pentru testarea web) mai puțin complicată, fără probleme și mai eficientă. Poate fi utilizat pentru programare, extragerea datelor de pe web și automatizarea sarcinilor web manuale. În plus, Geb este un cross-browser instrument pentru testarea automatizării.
Geb funcționează ca un instrument bazat pe dezvoltatori pentru automatizarea colaborării dintre browserele web și conținutul web. Acesta rulează WebDriver în limbaj Groovy.
Frumusețea instrumentului de testare Geb este că combină cele mai bune caracteristici ale limbajului de programare Groovy, jQuery, WebDriver și Modelarea obiectelor de pagină pentru a oferi inspecție puternică, robustă și dinamică a conținutului, selecție și interacțiune web.
Ceea ce face Geb unic în comparație cu altele instrumente de testare a automatizării disponibilă pe piață este sintaxa sa. Este similar cu jQuery care este utilizat în mod normal pentru interogarea cu ușurință a paginilor HTML. În al doilea rând, are suport integrat pentru modelul de obiect de pagină.
Geb oferă un ajutor deosebit pentru testarea funcțională pe web prin integrarea cu unele platforme de testare utilizate pe scară largă și comune, inclusiv Spock , Graaluri, JUnit , Castravete-JVM , TestNG, etc. Vom vedea cum Geb poate fi integrat cu cadrul Grails în partea ulterioară a acestui articol.
Ce veți învăța:
- Utilizări practice
- Avantaje
- Condiții prealabile
- Noțiuni de bază
- Aflați cu Exemplu
- Testarea validării bazei de date prin scriptul Geb:
- Puține metode utile în Geb
- Dezavantajele acestui instrument
- Mai multe resurse:
- Concluzie
- Lectură recomandată
Utilizări practice
După cum sa discutat deja în introducerea acestui tutorial Geb, acesta poate fi utilizat:
- Ca instrument de testare pe mai multe browsere, cum ar fi Chrome, Firefox, Internet Explorer etc. (Același script de automatizare poate fi rulat pe diferite browsere pentru a efectua testarea web a aplicației dvs.)
- Pentru a automatiza acceptarea utilizatorilor și cazurile de testare funcționale.
- Pentru a automatiza scenariile de testare create pentru testarea funcțională sau web a oricărei aplicații.
- Pentru a acoperi testarea de la capăt la cap, inclusiv validarea UI (User Interface) și validarea DB (Baza de date).
- Ca instrument al dezvoltatorului pentru automatizarea interacțiunii dintre un browser web și conținutul web.
Avantaje
- Geb este un instrument gratuit, open-source. Este licențiat sub licența Apache, versiunea 2.0.
- Ușor și simplu de automatizat testarea web.
- Obiectele de pagină ale lui Geb și Groovy DSL fac testele lizibile în măsura în care arată aproape ca o engleză simplă.
- Rulează testele rapid și astfel economisește timpul și costul testării.
- Compatibil cu diferite browsere precum IE, Firefox, Chrome și HTMLUnit.
- Execută testele în browserul real. Este ca și cum testarea în mediul real - cel pe care utilizatorul l-ar vedea.
- Face testarea de regresie ușoară. Puteți rula cazurile de test automat Geb pentru a verifica dacă funcționalitatea existentă se rupe după o remediere sau o modificare a aplicației.
- În timp ce utilizați Geb pentru testarea automatizării, sunt necesare modificări minime ale codului de testare dacă există modificări ale UI în aplicația dvs. Deci, reduce efortul și duplicarea codului.
- Ajută acoperirea testării la 360 de grade (sau maxim) în cadrul unui singur script.
Condiții prealabile
Înainte de a începe, trebuie să descărcăm și să instalăm software-ul. În depozitul central Maven, Geb este disponibil ca un singur jar Geb-core. Click aici pentru a-l instala pe aparat.
Veți avea nevoie de borna Geb-core de mai sus, de o implementare a driverului web și de borna de suport pentru seleniu pentru ca Geb să funcționeze pe mașina dvs.
Vă rugăm să consultați secțiunea de instalare și utilizare de mai jos a cărții Geb pentru a instala instrumentul și a-l rula => Manual de instalare și utilizare Geb .
Noțiuni de bază
După cum sa discutat deja, Geb poate fi integrat cu diferite cadre de testare.
În funcție de cadrul pe care l-ați ales, va trebui să instalați pluginul aferent.
De exemplu : Graaluri ( Graaluri este un cadru foarte renumit pentru aplicații web) pentru a scrie scripturi de test de automatizare și a automatiza scenariile de testare. Dacă doriți să utilizați Geb pentru testarea funcțională Grails, puteți instala pluginul aferent de aici plugin grails-geb . Acest plugin gestionează fișierul baseUrl și rapoarteDir elemente de configurare.
Aflați cu Exemplu
Permiteți-mi acum să arăt cum să scriu un script Geb pentru a automatiza un scenariu de testare.
Luați scenariul de testare de mai jos:
Testați ID-ul scenariului | Softwaretestinghelp-1 | Id-ul cazului de testare | Softwaretestinghelp -1A |
Ieșire | |||
Descrierea cazului de testare | Verificați pagina Softwaretestinghelp.com prin intermediul motorului de căutare | Stare script automatizare | In progres |
Cerință prealabilă | 1 Browser 2. motor de căutare 3. site-ul web - Softwaretestinghelp.com ar trebui să existe | Script cu condiții prealabile | N / A |
Pașii de execuție sunt:
Lansați motorul de căutare Google |
Verificați dacă motorul de căutare a fost încărcat cu succes |
Introduceți softwaretestinghelp.com în caseta de căutare |
Așteptați încărcarea rezultatelor |
Verificați dacă primul link din rezultate se îndreaptă către softwaretestinghelp.com |
Dacă da, deschideți linkul. |
Așteptați până se deschide site-ul web. |
Iată scriptul instrumentului de automatizare Geb pentru scenariul de mai sus:
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' } }
Acum puteți încerca să scrieți un script GEB simplu pe propria dvs. referință la exemplul de mai sus.
Testarea validării bazei de date prin scriptul Geb:
Orice test de automatizare web este împărțit în trei părți:
- Validare UI - Validarea datelor reflectate pe interfața cu utilizatorul (front end) înainte și după executarea scenariului de test de automatizare.
- Validare DB - Validarea datelor reflectate în baza de date (backend) înainte și după executarea scenariului de testare a automatizării.
- Fluxul actual de testare / fluxul de scripturi.
Scriptul Geb scris pentru automatizarea unui scenariu de testare poate conține codul pentru toate cele trei secțiuni de mai sus.
Scriptul Geb din secțiunea de exemplu de mai sus a fost pentru automatizarea fluxului de testare și validarea UI. În mod similar, puteți scrie un script de testare pentru validarea bazei de date.
Pentru orice test de validare a DB, puteți utiliza întotdeauna șablonul de mai jos ca schiță pentru codul dvs.:
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 }
Puține metode utile în Geb
- Când scenariul dvs. de caz de testare implică mai multe file și ferestre: Ori de câte ori întâlniți o aplicație care deschide ferestre sau file noi, De exemplu când faceți clic pe un link cu un set de atribute țintă, puteți utiliza cuWindow () și cuNewWindow () metode de executare a codului în contextul altor ferestre.
- Metoda unității: Clasa browser conține o metodă statică - conduce() . Această metodă oferă un plus de confort scripturilor Geb. Toate apelurile la metoda de nivel superior și accesele la proprietăți se presupun că sunt împotriva browserului.
- Solicitare: Instanțele browserului susțin un baseUrl proprietate utilizată pentru a rezolva toate adresele URL relative. De obicei, este cel mai de preferat să vă definiți adresele URL de bază cu bare oblice finale și să nu utilizați bare oblice principale pe adresele URL relative.
- Schimbarea paginii: Cu ajutorul utilului pagină() metode, este fezabil să modificați instanța paginii fără a face o nouă solicitare.
- Părăsirea browserului: Obiectul browserului oferă părăsi() și închide() metode (care pur și simplu predă sarcina către driverul de bază).
Dezavantajele acestui instrument
- Născut execută WebDriver în limba Groovy. Întreaga idee din spatele acestui lucru este de a folosi WebDriver mai ușor și mai simplu. Deci, când utilizați Webdriver prin Geb, va fi acceptat doar limbajul de programare Groovy. Dar, dacă utilizați direct WebDriver , acceptă multe limbi precum Ruby, C #, Python, Java.
- Nu aș sugera utilizarea Geb pentru proiecte mici - Funcționează minunat pentru sarcini enorme, dar are un impact asupra activităților mici. Dacă aplicația dvs. web nu conține mai multe pagini și formulare prin care trebuie să curgă informațiile, este posibil să descoperiți că Geb vă costă cu adevărat timp suplimentar decât economisește.
- Este foarte special despre ce mediu utilizează aplicația dvs. de site-ul web. Geb trebuie să fie bine integrat într-un mediu specific pentru a-l face să funcționeze bine.
Mai multe resurse:
- Verificați Cartea lui Geb aici pentru documentație și exemple detaliate.
- Iată un exemplu de proiect care prezintă integrarea lui Geb cu graaluri .
Concluzie
Geb este foarte util în automatizarea scenariilor de cazuri de testare. Este util pentru automatizarea testelor web, funcționale și de acceptare a utilizatorilor. Acesta acceptă mai multe browsere și poate fi integrat cu diferite cadre. Acesta combină puterea WebDriver, eleganța jQuery Selection, robustețea Page Object Modeling și expresivitatea Groovy.
Scripturile Geb sunt atât pentru dezvoltatori, cât și pentru utilizator, oferind o acoperire mai bună a testelor și testări accelerate, făcându-le mai eficiente în același timp.
Despre autor: Acesta este un post de invitat de Priya K. Are o experiență de peste 4 ani în servicii IT, cu expertiză în testare și suport pentru diverse aplicații.
Simțiți-vă liber să postați întrebările dvs. de testare a automatizării Geb în comentarii.
Lectură recomandată
- Tutorial WAVE Accessibility Testing Tool
- Tutorial Ranorex: un instrument de testare puternic pentru desktop, web și automatizare mobilă
- Instrument de testare a automatizării GUI Sikuli - Ghid pentru începători Partea # 2
- Tutorial Parrot QA: Revizuirea instrumentului de testare funcțională a browserului încrucișat
- Cele mai bune instrumente de testare software 2021 (Instrumente de automatizare a testelor de calitate)
- Tutoriale detaliate pentru eclipsă pentru începători
- Ce este testarea automatizării (Ghidul final pentru a începe automatizarea testelor)
- Parasoft SOAtest Tutorial: Instrument de testare API fără script