Selenium und Cucumber (BDD-Framework-Tutorial)
โก Intelligente Zusammenfassung
Selenium und Cucumber bildet ein leistungsstarkes Framework fรผr verhaltensgetriebene Entwicklung (BDD), das die Gherkin-Syntax in einfacher Sprache mit Selenium WebDriver-Automatisierung. Dieses Tutorial erlรคutert die Voraussetzungen, fรผhrt durch drei praktische Szenarien und zeigt, wie Feature-Dateien, Schrittdefinitionen und eine TestRunner-Klasse integriert werden, um Browsertests auszufรผhren.

In diesem Tutorial erfahren Sie, wie Sie Cucumber und Selenium WebDriver zum Aufbau eines verhaltensorientierten Entwicklungsframeworks (BDD), das lesbar, wartbar und datengetrieben ist.
Was ist Cucumber?
Cucumber ist ein Testwerkzeug, das verhaltensgetriebene Entwicklung (BDD) unterstรผtzt. Es beschreibt das Verhalten einer Anwendung in einfachem Englisch mithilfe der Gherkin-Sprache, wodurch auch Nicht-Entwickler zu Testspezifikationen beitragen kรถnnen, ohne eine Programmiersprache lernen zu mรผssen. Erfahren Sie mehr in unserer Cucumber Lernprogramm.
Was ist Selenium?
Selenium ist ein Automatisierungswerkzeug, das verwendet wird fรผr Funktionsprรผfung von webbasierten Anwendungen. Selenium unterstรผtzt mehrere Programmiersprachen, einschlieรlich Java, Rubin, Pythonund C#, wodurch es sich ideal fรผr Teams mit unterschiedlichen technischen Hintergrรผnden eignet. Erfahren Sie mehr in unserem Selenium Lernprogramm.
Warum verwenden Cucumber und Selenium?
Cucumber und Selenium sind zwei der am weitesten verbreiteten Testtechnologien. Die meisten Organisationen nutzen sie bereits. Selenium fรผr Funktionstests und mรถchten Schichten hinzufรผgen Cucumber oben, weil Cucumber macht den Anwendungsablauf leicht lesbar und verstรคndlich..
Cucumber basiert auf dem Rahmenwerk der verhaltensorientierten Entwicklung, fungiert als Brรผcke zwischen den folgenden Rollen:
- Software-Ingenieur und Business-Analyst.
- Manueller Tester und Automatisierungstester.
- Manueller Tester und Entwickler.
Das Cucumber Das BDD-Framework hilft Kunden, den Anwendungscode zu verstehen. Da es die Gherkin-Sprache verwendet, die in Klartext vorliegt, kann jeder im Unternehmen das Verhalten der Software nachvollziehen. Die Gherkin-Syntax ist in einfachem, lesbarem Englisch verfasst, wodurch die Spezifikation auch fรผr Nicht-Techniker verstรคndlich bleibt.
Voraussetzungen fรผr die Nutzung Cucumber und Selenium
Bevor wir beginnen Cucumber-Selenium Fรผr die Integration benรถtigen Sie folgende Elemente:
Selenium JAR-Dateien:
- Selenium-server-standalone
Sie kรถnnen sie herunterladen unter https://www.selenium.dev/downloads/.
Jar-Dateien fรผr Cucumber:
- Cucumber-Core
- Cucumber-html
- Cobertura Codeabdeckung
- Cucumber-Java
- Cucumber-junit
- Cucumber-jvm-deps
- Cucumber-Berichterstattung
- Hamcrest-Kern
- Gurke
- JUnit
Sie kรถnnen sie herunterladen unter https://mvnrepository.com/search?q=CucumberSie mรผssen die einzelnen JAR-Dateien suchen und nacheinander herunterladen.
Hier ist beispielsweise, wie man eine der JAR-Dateien herunterlรคdt, die โCucumber-coreโ Bibliothek.
Klicken Sie auf den obigen Download-Link. Sie werden zur Maven-Repository-Seite weitergeleitet. Suchen Sie nun nach der spezifischen JAR-Datei (in diesem Fall โCucumber Coreโ) wie im folgenden Screenshot dargestellt:
Klicken Sie auf der nรคchsten Seite auf Version 1.2.2:
Klicken Sie im nรคchsten Bildschirm auf โHerunterladenโ, um die Datei herunterzuladen. Cucumber Core-JAR-Datei:
Hinweis: Zur Vereinfachung haben wir die benรถtigten Maven-JAR-Dateien gebรผndelt. werden auf dieser Seite erlรคutertDiese JAR-Dateien kรถnnen mit der Zeit veralten und inkompatibel werden. Daher empfehlen wir, sie selbst mit der oben beschriebenen Methode herunterzuladen.
Automatisiertes Testen mit Cucumber und Selenium
Lassen Sie uns die Verwendung gemeinsam durchgehen. Cucumber und Selenium Schritt fรผr Schritt. Hier behandeln wir drei Szenarien:
- Szenario 1: Text in der Konsole drucken.
- Szenario 2: Anmeldedaten eingeben und Wert zurรผcksetzen.
- Szenario 3: Anmeldedaten eingeben auf Guru99 und den Wert zurรผcksetzen โ dies wird fรผr 3 Datensรคtze wiederholt.
Szenario 1: Text in der Konsole ausgeben
In diesem Szenario geben wir einfach Text in der Konsole aus. Cucumber.
Schritt 1) Erstellen Sie ein Projekt in Eclipse.
Erstellen Sie Java Projekt mit dem Namen "CucumberMitSelenium" wie im Screenshot unten gezeigt.
Schritt 2) Fรผgen Sie die JAR-Dateien zum Projekt hinzu.
Klicken Sie mit der rechten Maustaste auf das Projekt > Eigenschaften > Java Build-Pfad. Fรผgen Sie alle zuvor heruntergeladenen Bibliotheken hinzu.
Schritt 3) Erstellen Sie eine Feature-Datei.
Um eine Feature-Datei zu erstellen, erstellen Sie zuerst einen Ordner โFeaturesโ, wie im folgenden Screenshot gezeigt.
Geben Sie den Ordnernamen โFeaturesโ ein und klicken Sie auf Fertigstellen.
Erstellen Sie nun eine Feature-Datei im Ordner โFeaturesโ mit dem Namen MyTest.featureDer Vorgang รคhnelt dem Erstellen eines Ordners.
Hinweis: Mรถglicherweise mรผssen Sie die Cucumber Eclipse Installieren Sie zuerst das Plugin. Gehen Sie zu Hilfe โ Neue Software installieren und fรผgen Sie den Link ein. http://cucumber.github.io/cucumber-eclipse/update-site/und installieren Sie es.
Schritt 4) Schreiben Sie die Szenarien.
Die folgenden Zeilen sind geschrieben in MyTest.feature unter Verwendung der Gherkin-Sprache:
Feature: Reset functionality on login page of Application
Scenario: Verification of Reset button
Given Open the Firefox and launch the application
When Enter the Username and Password
Then Reset the credential
Code Erlรคuterung
Zeile 1) Definiert die Geschรคftsfunktionalitรคt.
Zeile 2) Definiert ein zu testendes Szenario.
Zeile 3) Definiert die Vorbedingung (gegeben).
Zeile 4) Definiert die auszufรผhrende Aktion (Wann).
Zeile 5) Definiert das erwartete Ergebnis (Dann).
Schritt 5) Schreiben Sie die Selenium TestRunner-Skript fรผr die Cucumber Rahmendesign.
Erstellen Sie TestRunner Paket und dann ein Runner.java Die Klassendatei befindet sich darunter.
package TestRunner;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(features = "Features", glue = {"StepDefinition"})
public class Runner
{
}
In obigem Cucumber Java Beispiel: Wir fรผhren Folgendes aus Gurkentest unter Verwendung der folgenden Anmerkungen:
@RunWith() erzรคhlt JUnit รผber die Test-Runner-Klasse, die mit der Ausfรผhrung unserer Tests beginnt.
@CucumberOptionen() Legt Testeigenschaften wie den Pfad der Feature-Datei und das Schrittdefinitions-Glue-Paket fest.
Screenshot der TestRunner-Datei:
Schritt 6) Erstellen Sie das Schrittdefinitionsskript.
Jetzt erstelle eine Schrittdefinition Paket und dann ein Steps.java Die Skriptdatei befindet sich darunter. In Steps.java schreiben wir Folgendes: Selenium Logik, die jedem Gherkin-Schritt zugeordnet ist.
package StepDefinition;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Steps {
@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() throws Throwable
{
System.out.println("This Step open the Firefox and launch the application.");
}
@When("^Enter the Username and Password$")
public void enter_the_Username_and_Password() throws Throwable
{
System.out.println("This step enter the Username and Password on the login page.");
}
@Then("^Reset the credential$")
public void Reset_the_credential() throws Throwable
{
System.out.println("This step click on the Reset button.");
}
}
Die Klasse heiรt Shritte und Cucumber Die Annotationen ordnen jede Methode einem Feature-Datei-Schritt zu:
@Gegeben definiert die Methode zum รffnen Firefox und starten Sie die Anwendung.
@Wann Definiert die Methode zur Eingabe von Benutzername und Passwort.
@Dann Definiert die Methode zum Zurรผcksetzen der Anmeldeinformationen.
Jede Methode gibt einfach eine Meldung in der Konsole aus.
Der folgende Screenshot zeigt das Steps.java-Skript und die Projektstruktur:
Hinweis: Eine Schrittdefinition ist der Code, den Sie mรถchten Cucumber wird ausgefรผhrt, wenn es mit einem Schritt in einer Feature-Datei รผbereinstimmt.
Schritt 7) Fรผhren Sie das Skript aus.
Fรผhren Sie dieses Skript aus der TestRunner-Datei (Runner.java) wie unten gezeigt aus.
Schritt 8) Analysieren Sie die Ausgabe.
Beim Ausfรผhren von Runner.java Cucumber Gibt denselben Text, der in Steps.java definiert ist, in der Konsole aus.
Szenario 2: Anmeldedaten eingeben und Wert zurรผcksetzen
Hier geben wir die Zugangsdaten ein. Guru99 Demo-Anmeldeseite und Wert zurรผcksetzen.
Fรผr Szenario 2 mรผssen wir nur aktualisieren Steps.javaHier fรผgen wir die realen Daten hinzu. Selenium Code. Stellen Sie zunรคchst sicher, dass Selenium Die JAR-Datei wurde dem Projekt hinzugefรผgt.
Schritt 1) Aktualisieren Sie das Steps.java-Skript wie unten gezeigt.
package StepDefinition;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Steps {
WebDriver driver;
@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() throws Throwable
{
System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://demo.guru99.com/v4");
}
@When("^Enter the Username and Password$")
public void enter_the_Username_and_Password() throws Throwable
{
driver.findElement(By.name("uid")).sendKeys("username12");
driver.findElement(By.name("password")).sendKeys("password12");
}
@Then("^Reset the credential$")
public void Reset_the_credential() throws Throwable
{
driver.findElement(By.name("btnReset")).click();
}
}
Screenshot des obigen Selenium Skript:
Schritt 2) Fรผhren Sie das Skript aus.
Nach der Aktualisierung von Steps.java fรผhren Sie Runner.java aus.
Schritt 3) Analysieren Sie die Ausgabe. In der Ausgabe sehen Sie Folgendes:
- Browser gestartet.
- GuruDie Demo-Website der 99 Bank ist online.
- Benutzername und Passwort werden auf der Anmeldeseite eingegeben.
- Durch die Schaltflรคche โZurรผcksetzenโ werden die Werte gelรถscht.
Szenario 3: Fรผhren Sie den Anmelde- und Zurรผcksetzungsvorgang mit 3 Datensรคtzen aus
Hier mรผssen wir beides aktualisieren. Steps.java und die Feature-Datei, um denselben Ablauf mit drei Sรคtzen von Anmeldeinformationen zu steuern.
Schritt 1) Aktualisieren Sie die Feature-Datei wie unten gezeigt.
Wir nutzen die Szenario-รbersicht und Beispiele Syntax so Cucumber Das gleiche Szenario wird fรผr jede Datenzeile wiederholt.
Feature: Reset functionality on login page of Application
Scenario Outline: Verification of reset button with multiple credentials
Given Open the Firefox and launch the application
When Enter the Username <username> and Password <password>
Then Reset the credential
Examples:
| username | password |
| User1 | password1 |
| User2 | password2 |
| User3 | password3 |
Schritt 2) Aktualisieren Sie das Steps.java-Skript.
Hier aktualisieren wir die Methodensignaturen, sodass sie Parameter aus der Tabelle โBeispieleโ akzeptieren.
package StepDefinition;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Steps {
WebDriver driver;
@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() throws Throwable
{
System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://demo.guru99.com/v4");
}
@When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")
public void enter_the_Username_and_Password(String username, String password) throws Throwable
{
driver.findElement(By.name("uid")).sendKeys(username);
driver.findElement(By.name("password")).sendKeys(password);
}
@Then("^Reset the credential$")
public void Reset_the_credential() throws Throwable
{
driver.findElement(By.name("btnReset")).click();
}
}
Schritt 3) Fรผhre das aktualisierte Skript aus.
Der folgende Bildschirm zeigt eine erfolgreiche Ausfรผhrung und die fรผr jeden Datensatz benรถtigte Zeit.
Schritt 4) Analysieren Sie die Ergebnisse. Die folgenden Schritte werden fรผr jeden der 3 Datensรคtze wiederholt:
- Browser gestartet.
- GuruDie Demo-Website der 99 Bank ist online.
- Benutzername und Passwort werden auf der Anmeldeseite eingegeben.
- Durch die Schaltflรคche โZurรผcksetzenโ werden die Werte gelรถscht.























