Automatisierungstests mit Cucumber Tool und Selen – Selenium Tutorial # 30

Im letzten Selenium Tutorial haben wir Ihnen Selenium Grid vorgestellt, eine verteilte Testausführungsumgebung zur Beschleunigung die Ausführung eines Testdurchlaufs.

Am Ende dieser umfassenden Selenium-Schulungsreihe lernen wir fortgeschrittene Selenium-Tests und verwandte Konzepte.

In diesem und dem nächsten Tutorial lernen wir Wir stellen Ihnen das Cucumber vor – ein BDD-Framework (Behavior Driven Development), das zusammen mit Selenium zur Durchführung von Abnahmetests verwendet wird.

Einführung in die Gurke

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 In diesem Tutorial konzentrieren wir uns auf Gurke mit Java als Sprache.

Grundlagen der Gurke

Um Gurke zu verstehen, müssen wir alle Funktionen der Gurke und ihre Verwendung kennen.

# 1) Funktionsdateien:

Funktionsdateien 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.

Beispiel-Feature-Datei:

Feature: Anmeldefunktion Feature

Um sicherzustellen, dass die Login-Funktionalität funktioniert,
Ich möchte den Gurkentest ausführen, um zu überprüfen, ob er funktioniert.

Szenario: Anmeldefunktion

Der angegebene Benutzer navigiert zu SOFTWARETETINGHELP.COM.
Wenn sich der Benutzer mit dem Benutzernamen „USER“ anmeldet „Und Passwort“ PASSWORT „
Dann sollte die Anmeldung erfolgreich sein

Szenario: Anmeldefunktion

Der angegebene Benutzer navigiert zu SOFTWARETETINGHELP.COM
Wenn sich der Benutzer mit dem Benutzernamen als“ anmeldet. USER1 ”und Passwort“ PASSWORD1 ”
Dann sollte eine Fehlermeldung ausgegeben werden.

# 2) Funktion:

Dies gibt Informationen über die Geschäftsfunktionalität auf hoher Ebene (siehe vorherige Beispiel) und den Zweck der zu prüfenden Anwendung. Jeder sollte in der Lage sein, die Absicht der Feature-Datei zu verstehen, indem er den ersten Feature-Schritt liest. Dieser Teil wird im Wesentlichen kurz gehalten.

# 3) Szenario:

Grundsätzlich repräsentiert ein Szenario eine bestimmte Funktionalität, 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.

  1. Gegeben: Wie oben erwähnt, gibt gegeben die Voraussetzungen an. Es handelt sich im Grunde genommen um einen bekannten Zustand.
  2. Wann: Dies ist Wird verwendet, wenn eine Aktion ausgeführt werden soll. Wie im obigen Beispiel wurde beim Versuch des Benutzers, sich mit Benutzername und Kennwort anzumelden, eine Aktion ausgeführt.
  3. Dann: Das erwartete Ergebnis oder Ergebnis sollte sein Hier platziert. Zum Beispiel: Überprüfen Sie, ob die Anmeldung erfolgreich und die Seitennavigation erfolgreich ist.
  4. Hintergrund: Wenn in jedem Szenario ein Schritt erforderlich ist, müssen diese Schritte im Hintergrund platziert werden. Zum Beispiel: Wenn a Der Benutzer muss die Datenbank vor jedem Szenario löschen, damit diese Schritte in den Hintergrund gestellt werden können.
  5. Und: Und wird verwendet, um zwei oder mehr dieselbe Art von Aktion zu kombinieren.

Beispiel:

Funktion: Anmeldefunktion

Szenario: Anmeldefunktion
Der angegebene Benutzer navigiert zu SOFTWARETETINGHELP.COM
Wenn sich der Benutzer mit dem Benutzernamen „USER“ Und passwo rd als „Passwort“
Dann sollte die Anmeldung erfolgreich sein
Und die Startseite sollte angezeigt werden

Beispiel für Hintergrund:

Hintergrund:

Gegeben Benutzer als Datenbankadministrator angemeldet
Und alle Junk-Werte werden gelöscht.

# 4) Szenarioübersicht:

Szenarioumrisse werden verwendet, wenn der gleiche Test mit unterschiedlichen Tests durchgeführt werden muss Datensatz. Nehmen wir das gleiche Beispiel. Wir müssen die Anmeldefunktionalität mit mehreren unterschiedlichen Benutzernamen- und Kennwortsätzen testen.

Funktion: Anmeldefunktion

Um sicherzustellen, dass die Anmeldefunktion funktioniert, möchte ich die ausführen Gurkentest, um zu überprüfen, ob es funktioniert

Szenarioübersicht: Anmeldefunktion

Der angegebene Benutzer navigiert zu SOFTWARETESTINGHELP.COM
Wenn sich der Benutzer mit dem Benutzernamen < Benutzername > und dem Kennwort < anmeldet Passwort >
Dann sollte die Anmeldung erfolgreich sein

Beispiele:
| Benutzername | Passwort |
| Tom | Passwort1 |
| Harry | password2 |
| Jerry | password3 |

Hinweis:

  1. Wie im obigen Beispiel gezeigt, werden Spaltennamen als Parameter an die When-Anweisung übergeben.
  2. Anstelle von „Szenario“ müssen Sie „Szenarioübersicht“ verwenden.
  3. 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: Feature-Dateien 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:

@SmokeTest

Feature: Feature für Anmeldefunktionen

Um sicherzustellen, dass die Anmeldefunktion funktioniert,
möchte ich den Gurkentest ausführen, um zu überprüfen, ob er funktioniert.

Szenarioübersicht: Anmeldefunktion

Der angegebene Benutzer navigiert zu SOFTWARETESTINGHELP. COM
Wenn sich der Benutzer mit dem Benutzernamen < Benutzername > und dem Kennwort < anmeldet Passwort >
Dann sollte die Anmeldung erfolgreich sein.

Beispiel für die Verwendung mehrerer Tags:

Wie im folgenden Beispiel gezeigt, dieselbe Funktionsdatei kann 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 Ihr Skript für den Anmeldetest ausgeführt werden soll, verwenden Sie das Tag @LoginTest.

Für eine Feature-Datei sowie für ein Szenario kann eine beliebige Anzahl von Tags angegeben werden.

@SmokeTest @ LoginTest

Funktion: Anmeldefunktion

Um sicherzustellen, dass die Anmeldefunktion funktioniert,
möchte ich den Gurkentest ausführen, um zu überprüfen, ob er funktioniert

Szenarioübersicht: Anmeldefunktion

Der angegebene Benutzer navigiert zu SOFTWARETETINGHELP.COM
Wenn sich der Benutzer mit dem Benutzernamen als < Benutzername > und Passwort < Passwort >
Dann sollte die Anmeldung erfolgreich sein

Ebenso können Sie Geben Sie Tags an, um das spezifische Szenario in einer Feature-Datei auszuführen. Bitte überprüfen Sie das folgende Beispiel, um ein bestimmtes Szenario auszuführen.

Funktion: Anmeldefunktion

Um sicherzustellen, dass die Anmeldefunktion funktioniert,
möchte ich den Gurkentest ausführen, um zu überprüfen, ob dies der Fall ist Arbeiten

@positiveScenario
Szenario: Anmeldefunktion

Der angegebene Benutzer navigiert zu SOFTWARETETINGHELP.COM
Wenn sich der Benutzer mit dem Benutzernamen als „USER“ und dem Kennwort „PASSWORD“ Dann sollte die Anmeldung erfolgreich sein.

@negaviveScenario
Szenario: Anmeldefunktion

Der angegebene Benutzer navigiert zu SOFTWARETETINGHELP.COM
Wenn sich der Benutzer mit dem Benutzernamen „USER1“ anmeldet. und Passwort „PASSWORD1“
Dann sollte die Fehlermeldung

# 6) JUnit Runner auslösen:

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 Typ des Berichts angeben, den Sie generieren möchten.

Beispiel für Junit Runner:

Ebenso können Sie der Gurke Anweisungen zum Ausführen mehrerer Tags geben. Das folgende Beispiel zeigt, wie mehrere Tags in Gurke verwendet werden, um verschiedene Szenarien auszuführen.

# 7) Gurkenbericht:

Gurke generiert ein eigenes HTML-Format. Eine bessere Berichterstattung kann jedoch mit Jenkins oder dem Bambus-Tool erfolgen. Details zur Berichterstellung 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 separat. Weitere Informationen zur Projekteinrichtung finden Sie im Cucumber Tutorial Part2. Denken Sie daran, dass für Gurke 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 „^“, so dass 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 zeigt, 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. Befolgen Sie das nächste Tutorial zur Selenintegration mit Gurke.

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 cucumber den Funktionsschritt und gibt eine Szenarioanweisung an. Sobald Gurke Given der Anweisung findet, wird dieselbe Given-Anweisung 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 Lernprogramm haben wir die Funktionen von behandelt Gurkentool und seine Verwendung in Echtzeitszenarien.
Gurke ist das beliebteste Tool für viele Projekte, da es leicht zu verstehen, lesbar und mit Geschäftsfunktionen ausgestattet ist.

Im nächsten Kapitel werden wir uns damit befassen Einrichten eines Gurken-Java-Projekts und Integrieren von Selenium WebDriver in Gurken.

Letzte Aktualisierung: 18. Januar 2021, 6:40 Uhr

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.