automation testing using cucumber tool
Im letzten Selenium-Tutorial haben wir Ihnen Folgendes vorgestellt Selengitter welches ist zu verteilte Testausführung Umgebung, um die Ausführung eines Testdurchlaufs zu beschleunigen .
Jetzt, am Ende dieser umfassenden Selenium-Schulungsreihe, lernen wir Fortgeschrittene Selentests und verwandte Konzepte.
In diesem und dem nächsten Tutorial stellen wir Ihnen das vor Gurke - a BDD-Framework (Behavior Driven Development), das zusammen mit Selenium zur Durchführung von Abnahmetests verwendet wird.
Was du lernen wirst:
Gurke Einführung
Eine Gurke ist ein Tool, das auf dem BDD-Framework (Behavior Driven Development) basiert und zum Schreiben von Abnahmetests für die Webanwendung verwendet wird. Es ermöglicht Business Analysts, Entwicklern, Testern usw. die Automatisierung der Funktionsvalidierung in einem leicht lesbaren und verständlichen Format (wie z. B. einfachem Englisch).
Gurken-Feature-Dateien können als gutes Dokument für alle dienen. Es gibt viele andere Tools wie JBehave, die ebenfalls das BDD-Framework unterstützen. Zunächst wurde Cucumber in Ruby implementiert und dann auf das Java-Framework erweitert. Beide Tools unterstützen native JUnit.
Behavior Driven Development ist eine Erweiterung von Test Driven Development und wird zum Testen des Systems verwendet, anstatt den jeweiligen Code zu testen. Wir werden mehr über BDD und den Schreibstil von BDD-Tests sprechen.
Gurke kann zusammen mit Selen, Watir und Capybara usw. verwendet werden. Gurke unterstützt viele andere Sprachen wie Perl, PHP, Python, Net usw. In diesem Tutorial konzentrieren wir uns auf Gurke mit Java als Sprache.
Gurken-Grundlagen
Um Gurken zu verstehen, müssen wir alle Merkmale der Gurke und ihre Verwendung kennen.
Fragen und Antworten zum Java Java Interview
# 1) Funktionsdateien:
Feature-Dateien sind der wesentliche Bestandteil der Gurke, mit der Testautomatisierungsschritte oder Abnahmetests geschrieben werden. Dies kann als Live-Dokument verwendet werden. Die Schritte sind die Anwendungsspezifikation. Alle Feature-Dateien enden mit der Erweiterung .feature.
Beispielfeature-Datei:
Merkmal : Anmeldefunktion
Um sicherzustellen, dass die Anmeldefunktion funktioniert,
Ich möchte den Gurkentest ausführen, um zu überprüfen, ob er funktioniert
Szenario : Anmeldefunktion
Gegeben Benutzer navigiert zu SOFTWARETETINGHELP.COM
Wann Benutzer meldet sich mit Benutzername als 'USER' und Passwort 'PASSWORD' an
Dann Login sollte erfolgreich sein
Szenario : Anmeldefunktion
Gegeben Benutzer navigiert zu SOFTWARETETINGHELP.COM
Wann Der Benutzer meldet sich mit dem Benutzernamen 'USER1' und dem Passwort 'PASSWORD1' an.
Dann Fehlermeldung sollte ausgelöst werden
# 2) Funktion:
T. Hier finden Sie Informationen zur allgemeinen Geschäftsfunktionalität (siehe vorheriges Beispiel) und zum Zweck der zu testenden Anwendung. Jeder sollte in der Lage sein, die Absicht der Feature-Datei zu verstehen, indem er den ersten Feature-Schritt liest. Dieser Teil wird grundsätzlich kurz gehalten.
# 3) Szenario:
Grundsätzlich stellt ein Szenario eine bestimmte Funktionalität dar, die getestet wird. Wenn Sie das Szenario sehen, sollte der Benutzer in der Lage sein, die Absicht hinter dem Szenario und die Bedeutung des Tests zu verstehen. Jedes Szenario sollte gegeben sein, wann und dann formatieren. Diese Sprache wird als 'Essiggurke' bezeichnet.
- Gegeben: Wie oben erwähnt, spezifiziert gegeben die Vorbedingungen. Es ist im Grunde ein bekannter Zustand.
- Wann : Dies wird verwendet, wenn eine Aktion ausgeführt werden soll. Wie im obigen Beispiel haben wir gesehen, wenn der Benutzer versucht, sich mit Benutzername und Passwort anzumelden, wird dies zu einer Aktion .
- Dann: Das erwartete Ergebnis oder Ergebnis sollte hier platziert werden. Zum Beispiel: Überprüfen Sie, ob die Anmeldung erfolgreich ist.
- Hintergrund: Immer wenn in jedem Szenario ein Schritt erforderlich ist, müssen diese Schritte in den Hintergrund gestellt werden. Zum Beispiel: Wenn ein Benutzer vor jedem Szenario die Datenbank löschen muss, können diese Schritte in den Hintergrund gestellt werden.
- Und : Und wird verwendet, um zwei oder mehr gleiche Arten von Aktionen zu kombinieren.
Beispiel:
Merkmal : Anmeldefunktion
Szenario : Anmeldefunktion
Gegeben Benutzer navigiert zu SOFTWARETETINGHELP.COM
Wann Benutzer meldet sich mit Benutzername als 'USER' an
Und Passwort als 'Passwort'
Dann Login sollte erfolgreich sein
Und Die Startseite sollte angezeigt werden
Ausgabe der C ++ - Dateieingabe
Beispiel für Hintergrund:
Hintergrund:
Gegeben Benutzer als Datenbankadministrator angemeldet
Und Alle Junk-Werte werden gelöscht
# 4) Szenarioübersicht:
Szenarioumrisse werden verwendet, wenn derselbe Test mit einem anderen Datensatz durchgeführt werden muss. Nehmen wir das gleiche Beispiel. Wir müssen die Anmeldefunktionalität mit mehreren unterschiedlichen Benutzernamen und Passwörtern testen.
Merkmal : Anmeldefunktion
Um sicherzustellen, dass die Anmeldefunktion funktioniert,
Ich möchte den Gurkentest ausführen, um zu überprüfen, ob er funktioniert
Szenarioübersicht : Anmeldefunktion
Gegeben Benutzer navigiert zu SOFTWARETESTINGHELP.COM
Wann Benutzer meldet sich mit Benutzername als an< Nutzername > und Passwort< Passwort >
Dann Login sollte erfolgreich sein
Beispiele:
| Benutzername | Passwort |
| Tom | Passwort1 |
| Harry | Passwort2 |
| Jerry | Passwort3 |
Hinweis:
- Wie im obigen Beispiel gezeigt, werden Spaltennamen als Parameter an übergeben Wann Erklärung.
- Anstelle von 'Szenario' müssen Sie 'Szenarioübersicht' verwenden.
- Beispiele werden verwendet, um verschiedene Argumente im Tabellenformat zu übergeben. Vertikale Rohre werden verwendet, um zwei verschiedene Säulen zu trennen. Ein Beispiel kann viele verschiedene Spalten enthalten.
# 5) Tags:
Gurke führt standardmäßig alle Szenarien in allen Feature-Dateien aus. In Echtzeitprojekten können Hunderte von Feature-Dateien vorhanden sein, die nicht immer ausgeführt werden müssen.
Zum Beispiel : Funktionsdateien im Zusammenhang mit Rauchtests müssen nicht immer ausgeführt werden. Wenn Sie also in jeder Feature-Datei ein Tag als rauchfrei erwähnen, das sich auf den Rauchtest bezieht und den Gurkentest mit dem @ SmokeTest-Tag ausführt. Cucumber führt nur die Feature-Dateien aus, die für bestimmte Tags spezifisch sind. Bitte folgen Sie dem folgenden Beispiel. Sie können mehrere Tags in einer Feature-Datei angeben.
Beispiel für die Verwendung einzelner Tags:
@Rauchtest
Merkmal : Anmeldefunktion
Um sicherzustellen, dass die Anmeldefunktion funktioniert,
Ich möchte den Gurkentest ausführen, um zu überprüfen, ob er funktioniert
Szenarioübersicht : Anmeldefunktion
Gegeben Benutzer navigiert zu SOFTWARETESTINGHELP.COM
Wann Benutzer meldet sich mit Benutzername als an< Nutzername > und Passwort< Passwort >
Dann Login sollte erfolgreich sein
Beispiele:
| Benutzername | Passwort |
| Tom | Passwort1 |
| Harry | Passwort2 |
| Jerry | Passwort3 |
Beispiel für die Verwendung mehrerer Tags:
Wie im folgenden Beispiel gezeigt, kann dieselbe Funktionsdatei sowohl für Rauchtestszenarien als auch für Anmeldetestszenarien verwendet werden. Wenn Sie beabsichtigen, Ihr Skript für einen Rauchtest auszuführen, verwenden Sie @SmokeTest. Wenn Sie möchten, dass Ihr Skript für den Anmeldetest ausgeführt wird, verwenden Sie das Tag @LoginTest.
Eine beliebige Anzahl von Tags kann sowohl für eine Feature-Datei als auch für ein Szenario angegeben werden.
@SmokeTest @LoginTest
Merkmal : Anmeldefunktion
Um sicherzustellen, dass die Anmeldefunktion funktioniert,
Ich möchte den Gurkentest ausführen, um zu überprüfen, ob er funktioniert
Szenarioübersicht : Anmeldefunktion
Gegeben Benutzer navigiert zu SOFTWARETETINGHELP.COM
Wann Benutzer meldet sich mit Benutzername als und Passwort an
Dann Login sollte erfolgreich sein
Beispiele:
| Benutzername | Passwort |
| Tom | Passwort1 |
| Harry | Passwort2 |
| Jerry | Passwort3 |
Ebenso können Sie Tags angeben, um das bestimmte Szenario in einer Feature-Datei auszuführen. Bitte überprüfen Sie das folgende Beispiel, um ein bestimmtes Szenario auszuführen.
Merkmal : Anmeldefunktion
Um sicherzustellen, dass die Anmeldefunktion funktioniert,
Ich möchte den Gurkentest ausführen, um zu überprüfen, ob er funktioniert
@positiveScenario
Szenario : Anmeldefunktion
App auf Android-Handy auszuspionieren
Gegeben Benutzer navigiert zu SOFTWARETETINGHELP.COM
Wann Benutzer meldet sich mit Benutzername als 'USER' und Passwort 'PASSWORD' an
Dann Login sollte erfolgreich sein
@negaviveScenario
Szenario : Anmeldefunktion
Gegeben Benutzer navigiert zu SOFTWARETETINGHELP.COM
Wann Der Benutzer meldet sich mit dem Benutzernamen 'USER1' und dem Passwort 'PASSWORD1' an.
Dann Fehlermeldung sollte werfen
# 6) JUnit Runner:
Zum Ausführen der spezifischen Feature-Datei verwendet cucumber den Standard-JUnit-Runner und gibt Tags in @Cucumber an. Optionen. Mehrere Tags können durch Komma getrennt angegeben werden. Hier können Sie den Pfad des Berichts und den Berichtstyp angeben, den Sie generieren möchten.
Beispiel für Junit Runner:
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (format = {'SimpleHtmlReport: report / RauchTest.html'}, tags = {'@ RauchTest'}) Öffentliche Klasse JUnitRunner {} Ebenso können Sie der Gurke Anweisungen zum Ausführen mehrerer Tags geben. Das folgende Beispiel zeigt, wie mehrere Tags in Gurken verwendet werden, um verschiedene Szenarien auszuführen.
import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={'SimpleHtmlReport:report/smokeTest.html'},tags={'@smokeTest',”@LoginTest”}) Public class JUnitRunner { }
# 7) Gurkenbericht:
Gurke generiert ein eigenes HTML-Format. Eine bessere Berichterstattung kann jedoch mit Jenkins oder dem Bambus-Tool erfolgen. Details zur Berichterstattung werden im nächsten Thema der Gurke behandelt.
Einrichtung des Gurkenprojekts:
Eine ausführliche Erläuterung der Einrichtung des Gurkenprojekts finden Sie im nächsten Lernprogramm. Weitere Informationen zur Projekteinrichtung finden Sie im Cucumber Tutorial Part2. Denken Sie daran, dass für Gurken keine zusätzlichen Softwareinstallationen erforderlich sind.
Implementierung der Feature-Datei:
Wir müssen diese Schritte in Java implementieren, um die Feature-Dateien zu testen. Sie müssen eine Klasse erstellen, die die angegebenen Wann- und Dann-Anweisungen enthält. Gurke verwendet ihre Anmerkungen und alle Schritte sind in diese Anmerkungen eingebettet (gegeben, wann, dann). Jede Phrase beginnt mit '^', damit Gurke den Beginn des Schritts versteht. Ebenso endet jeder Schritt mit '$'. Der Benutzer kann reguläre Ausdrücke verwenden, um verschiedene Testdaten zu übergeben. Reguläre Ausdrücke übernehmen Daten aus Feature-Schritten und werden an Schrittdefinitionen übergeben. Die Reihenfolge der Parameter hängt davon ab, wie sie aus der Feature-Datei übergeben werden. Weitere Informationen zum Einrichten und Zuordnen von Projekten zwischen Feature-Dateien und Java-Klassen finden Sie im nächsten Tutorial.
Beispiel:
Das folgende Beispiel soll veranschaulichen, wie Feature-Dateien implementiert werden können.
In diesem Beispiel haben wir keine Selen-API verwendet. Dies soll nur zeigen, wie Gurke als eigenständiges Framework funktioniert. Bitte folgen Sie dem nächsten Tutorial zur Selenintegration mit Gurken.
public class LoginTest { @Given('^user navigates to SOFTWARETETINGHELP.COM$') public void navigatePage() { system.out.println(“Cucumber executed Given statement”); } @When('^user logs in using Username as '(.*)' and Password '(.*)'$') public void login(String usename,String password) { system.out.println(“Username is:”+ usename); system.out.println(“Password is:”+ password); } @When('^click the Submit button$') public void clickTheSubmitButton() { system.out.println(“Executing When statement”) } @Then('^Home page should be displayed$') public void validatePage() { system.out.println(“Executing Then statement”) } @Then('^login should be successful$') public void validateLoginSuccess() { system.out.println(“Executing 2nd Then statement”) } }
Wenn Sie die Gurkenläufer-Klasse ausführen, beginnt die Gurke mit dem Lesen der Schritte der Feature-Datei. Wenn Sie beispielsweise @smokeTest ausführen, liest die Gurke Merkmal Schritt und Gegeben eine Aussage von Szenario . Sobald Gurke angesichts der Aussage findet, gleich Gegeben Anweisung wird nach Ihren Java-Dateien durchsucht. Wenn derselbe Schritt in der Java-Datei gefunden wird, führt cucumber die für denselben Schritt angegebene Funktion aus, andernfalls überspringt cucumber den Schritt.
Fazit
In diesem Tutorial haben wir die Funktionen des Gurkenwerkzeugs und seine Verwendung in Echtzeitszenarien behandelt.
Gurke ist ein beliebtes Werkzeug für viele Projekte, da es leicht zu verstehen, lesbar und mit Geschäftsfunktionen ausgestattet ist.
Im nächsten Kapitel Außerdem erfahren Sie, wie Sie ein Gurken-Java-Projekt einrichten und Selenium WebDriver in Gurken integrieren.
Literatur-Empfehlungen
- Cucumber Selenium Tutorial: Integration von Cucumber Java Selenium WebDriver
- 30+ beste Selen-Tutorials: Lernen Sie Selen anhand realer Beispiele
- Selenium Grid Tutorial: Setup und Beispiel für Cross-Browser-Tests
- Spock für Integration und Funktionstests mit Selen
- Verwendung des Maven Build Automation Tools und des Maven Project Setup für Selen - Selenium Tutorial # 24
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- Ausführliche Eclipse-Tutorials für Anfänger
- Tutorial zum WAVE Accessibility Testing Tool