geb tutorial browser automation testing using geb tool
Geb (ausgesprochen „jeb“) ist die Antwort auf die Herausforderungen der Browser-Automatisierung. Es ist ein sehr effektives Tool, um Automatisierungstests über das Web durchzuführen.
Geb entstand aus der Notwendigkeit heraus, die Browser-Automatisierung (zunächst für Webtests) weniger kompliziert, problemlos und effizienter zu gestalten. Es kann zum Programmieren, Extrahieren von Daten aus dem Web und zum Automatisieren der manuellen Webaufgaben verwendet werden. Darüber hinaus ist Geb a browserübergreifend Tool für Automatisierungstests.
Geb fungiert als entwicklergesteuertes Tool zur Automatisierung der Zusammenarbeit zwischen Webbrowsern und Webinhalten. Der WebDriver wird in der Sprache Groovy ausgeführt.
Das Schöne am Geb-Testtool ist, dass es die besten Funktionen der Programmiersprache Groovy, jQuery, kombiniert. WebDriver und Seitenobjektmodellierung für leistungsstarke, robuste und dynamische Überprüfung, Auswahl und Webinteraktion von Inhalten.
Was macht Geb einzigartig im Vergleich zu anderen Tools für Automatisierungstests auf dem Markt verfügbar ist seine Syntax. Es ähnelt jQuery, das normalerweise zum einfachen Abfragen der HTML-Seiten verwendet wird. Zweitens wurde die Unterstützung für das Seitenobjektmuster integriert.
Geb bietet große Hilfe für funktionale Webtests durch die Integration in einige weit verbreitete und gängige Testplattformen, einschließlich Spock , Grale, JUnit , Gurken-JVM , TestNG usw. Wir werden im späteren Teil dieses Artikels sehen, wie Geb in das Grails-Framework integriert werden kann.
Was du lernen wirst:
- Praktische Anwendungen
- Vorteile
- Voraussetzungen
- Einstieg
- Lernen Sie mit Beispiel
- Testen der Datenbankvalidierung über das Geb-Skript:
- Einige nützliche Methoden in Geb
- Nachteile dieses Werkzeugs
- Mehr Ressourcen:
- Fazit
- Literatur-Empfehlungen
Praktische Anwendungen
Wie bereits in der Einführung dieses Geb-Tutorials erläutert, kann es verwendet werden:
- Als Testtool in mehreren Browsern wie Chrome, Firefox, Internet Explorer usw. (Dasselbe Automatisierungsskript kann in verschiedenen Browsern ausgeführt werden, um Webtests Ihrer Anwendung durchzuführen.)
- Automatisierung der Benutzerakzeptanz und Funktionstestfälle.
- Automatisierung von Testszenarien, die für Funktions- oder Webtests einer Anwendung erstellt wurden.
- Um die End-to-End-Tests einschließlich der UI-Validierung (Benutzeroberfläche) und der DB-Validierung (Datenbank) abzudecken.
- Als Entwicklertool zur Automatisierung der Interaktion zwischen einem Webbrowser und Webinhalten.
Vorteile
- Geb ist ein kostenloses Open-Source-Tool. Es ist unter der Apache-Lizenz, Version 2.0, lizenziert.
- Einfache und einfach zu automatisierende Webtests.
- Gebs Page Objects und Groovy DSL machen Tests so lesbar, dass sie fast wie einfaches Englisch aussehen.
- Führt die Tests schnell aus und spart so Zeit und Kosten für das Testen.
- Kompatibel mit verschiedenen Browsern wie IE, Firefox, Chrome und HTMLUnit.
- Es führt die Tests im realen Browser aus. Es ist, als würde man in der realen Umgebung testen - die, die der Benutzer sehen würde.
- Dies erleichtert das Testen der Regression. Sie können die automatisierten Testfälle von Geb ausführen, um zu überprüfen, ob vorhandene Funktionen nach einem Fix oder einer Änderung in der Anwendung nicht mehr funktionieren.
- Während Sie Geb für Automatisierungstests verwenden, sind nur minimale Änderungen des Testcodes erforderlich, wenn sich in Ihrer Anwendung Änderungen an der Benutzeroberfläche ergeben. Dies reduziert den Aufwand und die Vervielfältigung von Code.
- Es hilft dabei, die Abdeckung innerhalb eines einzelnen Skripts um 360 Grad (oder maximal) zu testen.
Voraussetzungen
Bevor wir beginnen, müssen wir die Software herunterladen und installieren. Im zentralen Maven-Repository ist Geb als einzelnes Geb-Core-Glas erhältlich. Klicke hier um es auf Ihrem Computer zu installieren.
Sie benötigen die oben genannte Geb-Core-JAR, eine Web-Treiber-Implementierung und die Selenium-Support-JAR, damit Geb auf Ihrem Computer funktioniert.
Bitte lesen Sie den folgenden Abschnitt zur Installation und Verwendung des Geb-Buches, um das Tool zu installieren und zum Laufen zu bringen => Geb Installations- und Gebrauchsanweisung .
Einstieg
Wie bereits erwähnt, kann Geb in verschiedene Test-Frameworks integriert werden.
Abhängig von dem von Ihnen gewählten Framework müssen Sie das zugehörige Plugin installieren.
Zum Beispiel :: Grale ( Grale ist ein sehr bekanntes Framework für Webanwendungen), um Automatisierungstestskripte zu schreiben und die Testszenarien zu automatisieren. Wenn Sie Geb für Ihre Grails-Funktionstests verwenden möchten, können Sie das zugehörige Plugin von hier aus installieren grails-geb plugin . Dieses Plugin behandelt die baseUrl und BerichteDir Konfigurationselemente.
Lernen Sie mit Beispiel
Lassen Sie mich nun zeigen, wie ein Geb-Skript geschrieben wird, um ein Testszenario zu automatisieren.
Nehmen Sie das folgende Testszenario:
Testszenario-ID | Software-Testhilfe-1 | Testfall-ID | Software-Testhilfe -1A |
Ausgang | |||
Testfallbeschreibung | Überprüfen Sie die Softwaretestinghelp.com-Seite über die Suchmaschine | Status des Automatisierungsskripts | In Bearbeitung |
Voraussetzung | 1 Browser 2. Suchmaschine 3. Website - Softwaretestinghelp.com sollte vorhanden sein | Vorausgesetztes Skript | N / A |
Die Ausführungsschritte sind:
Starten Sie die Google-Suchmaschine |
Überprüfen Sie, ob die Suchmaschine erfolgreich geladen wurde |
Geben Sie softwaretestinghelp.com in das Suchfeld ein |
Warten Sie, bis die Ergebnisse geladen sind |
Überprüfen Sie, ob der erste Link in den Ergebnissen zu softwaretestinghelp.com führt |
Wenn ja, öffnen Sie den Link. |
Warten Sie, bis die Website geöffnet wird. |
Hier ist das Skript des Geb-Automatisierungstools für das obige Szenario:
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' } }
Sie können jetzt versuchen, ein einfaches GEB-Skript selbst zu schreiben, indem Sie auf das obige Beispiel verweisen.
Testen der Datenbankvalidierung über das Geb-Skript:
Alle Webautomatisierungstests sind in drei Teile unterteilt:
- UI-Validierung - Überprüfen der auf der Benutzeroberfläche (Front-End) wiedergegebenen Daten vor und nach dem Ausführen des Automatisierungstestszenarios.
- DB-Validierung - Überprüfen der in der Datenbank (Backend) enthaltenen Daten vor und nach dem Ausführen des Automatisierungstestszenarios.
- Tatsächlicher Testfluss / Skriptfluss.
Das zur Automatisierung eines Testszenarios geschriebene Geb-Skript kann den Code für alle drei oben genannten Abschnitte enthalten.
Das Geb-Skript im obigen Beispielabschnitt diente zur Automatisierung des Testflusses und der UI-Validierung. Ebenso können Sie ein Testskript für die Datenbanküberprüfung schreiben.
Für jeden DB-Validierungstest können Sie immer die folgende Vorlage als Gliederung für Ihren Code verwenden:
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 }
Einige nützliche Methoden in Geb
- Wenn Ihr Testfallszenario mehrere Registerkarten und Fenster umfasst: Immer wenn Sie auf eine Anwendung stoßen, die neue Fenster oder Registerkarten öffnet, Zum Beispiel Wenn Sie auf einen Link mit einem Zielattributsatz klicken, können Sie diesen verwenden withWindow () und withNewWindow () Methoden zum Ausführen von Code im Kontext anderer Fenster.
- Die Antriebsmethode: Browser-Klasse enthält eine statische Methode - Fahrt() . Diese Methode bietet Geb-Skripten zusätzlichen Komfort. Alle Methodenaufrufe und Eigenschaftszugriffe der obersten Ebene gelten als gegen den Browser gerichtet.
- Anfragen machen: Browser-Instanzen unterstützen a baseUrl Eigenschaft, die zum Auflösen aller relativen URLs verwendet wird. In der Regel ist es am besten, Ihre Basis-URLs mit abschließenden Schrägstrichen zu definieren und keine führenden Schrägstriche für relative URLs zu verwenden.
- Ändern der Seite: Mit Hilfe von nützlich Seite() Methoden ist es möglich, die Seiteninstanz zu ändern, ohne eine neue Anfrage zu stellen.
- Browser verlassen: Das Browserobjekt bietet Verlassen() und schließen() Methoden (die die Aufgabe einfach an den Basistreiber übergeben).
Nachteile dieses Werkzeugs
- Geb wird ausgeführt WebDriver in der groovigen Sprache. Die ganze Idee dahinter ist, davon Gebrauch zu machen WebDriver einfacher und einfacher. Wenn Sie Webdriver über Geb verwenden, wird nur die Programmiersprache Groovy unterstützt. Aber wenn Sie direkt verwenden WebDriver Es unterstützt viele Sprachen wie Ruby, C #, Python, Java.
- Ich würde die Verwendung von Geb für kleine Projekte nicht empfehlen. Es funktioniert hervorragend für enorme Aufgaben, wirkt sich jedoch auf kleine Aktivitäten aus. Wenn Ihre Webanwendung nicht mehrere Seiten und Formulare enthält, über die die Informationen fließen müssen, werden Sie möglicherweise feststellen, dass Geb Sie wirklich mehr Zeit kostet, als es spart.
- Es ist sehr wichtig, welche Umgebung Ihre Website-Anwendung verwendet. Geb muss gut in eine bestimmte Umgebung integriert sein, damit es einwandfrei funktioniert.
Mehr Ressourcen:
- Probier das aus Buch Geb hier für detaillierte Dokumentation und Beispiele.
- Hier ist ein Beispielprojekt, das das zeigt Integration von Geb mit Gralen .
Fazit
Geb ist sehr nützlich bei der Automatisierung von Testfallszenarien. Es ist nützlich, Web-, Funktions- und Benutzerakzeptanztests zu automatisieren. Es unterstützt mehrere Browser und kann in verschiedene Frameworks integriert werden. Es kombiniert die Leistungsfähigkeit von WebDriver, die Eleganz von jQuery Selection, die Robustheit der Seitenobjektmodellierung und die Ausdruckskraft von Groovy.
Geb-Skripte sind sowohl entwickler- als auch benutzerfreundlich und bieten eine bessere Testabdeckung und beschleunigte Tests, während sie gleichzeitig effizienter werden.
Über den Autor: Dies ist ein Gastbeitrag von Priya K. Sie verfügt über mehr als 4 Jahre Erfahrung in IT-Services mit Erfahrung im Testen und Support für verschiedene Anwendungen.
Sie können Ihre Geb-Automatisierungstestanfragen gerne in Kommentaren veröffentlichen.
Literatur-Empfehlungen
- Tutorial zum WAVE Accessibility Testing Tool
- Ranorex-Lernprogramm: Ein leistungsstarkes Tool zum Testen der Desktop-, Web- und mobilen Automatisierung
- Sikuli GUI Automation Testing Tool - Anfängerhandbuch Teil 2
- Parrot QA Tutorial: Überprüfung des Cross-Browser-Funktionstests
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Ausführliche Eclipse-Tutorials für Anfänger
- Was ist Automatisierungstest? (Ultimativer Leitfaden zum Starten der Testautomatisierung)
- Parasoft SOAtest Tutorial: Skriptloses API-Testtool