Gurke - Eigenschaften
EIN Featurekann als eigenständige Einheit oder Funktionalität eines Projekts definiert werden. Nehmen wir ein sehr verbreitetes Beispiel für eine Social-Networking-Site. Wie sieht die Funktion dieses Produkts / Projekts aus? Nur wenige Grundfunktionen können wie folgt ermittelt werden:
Erstellen Sie den Benutzer und entfernen Sie ihn von der Website für soziale Netzwerke.
Benutzeranmeldefunktion für die Website für soziale Netzwerke.
Teilen von Fotos oder Videos auf der Website für soziale Netzwerke.
Senden einer Freundschaftsanfrage.
Logout.
Inzwischen ist klar, dass jede unabhängige Funktionalität des zu testenden Produkts als Merkmal bezeichnet werden kann, wenn wir über Gurke sprechen. Wenn Sie später mit dem Testen beginnen, sollten Sie vor dem Ableiten der Testskripte die zu testenden Funktionen festlegen.
Eine Funktion enthält normalerweise eine Liste von Szenarien, die für diese Funktion getestet werden sollen. Eine Datei, in der wir Features speichern, eine Beschreibung der zu testenden Features und Szenarien ist bekannt alsFeature File. Weitere Informationen zu Feature-Dateien finden Sie im folgenden Kapitel.
Das Schlüsselwort für ein in Gherkins getestetes Feature lautet "Feature". Die empfohlene Vorgehensweise besteht darin, eine kleine Beschreibung des Features unter den Feature-Titel in die Feature-Datei zu schreiben. Dies wird auch die Notwendigkeit einer guten Dokumentation erfüllen.
Beispiel
Feature - Anmeldefunktion für eine Social-Networking-Site.
Der Benutzer sollte sich auf der Website für soziale Netzwerke anmelden können, wenn der Benutzername und das Kennwort korrekt sind.
Dem Benutzer sollte die Fehlermeldung angezeigt werden, wenn der Benutzername und das Passwort falsch sind.
Der Benutzer sollte zur Startseite navigiert werden, wenn der Benutzername und das Passwort korrekt sind.
Feature-Dateien
Die Datei, in die Gurkentests geschrieben werden, ist bekannt als feature files. Es wird empfohlen, für jedes zu testende Feature eine separate Feature-Datei zu erstellen. Die Erweiterung der Feature-Datei muss ".feature" sein.
Man kann so viele Feature-Dateien wie nötig erstellen. Um eine organisierte Struktur zu haben, sollte jedes Feature eine Feature-Datei haben.
Zum Beispiel -
Sr.Nr. | Merkmal | Name der Feature-Datei |
---|---|---|
1 | Benutzer-Anmeldung | userLogin.feature |
2 | Teile den Beitrag | sharePost.feature |
3 | Benutzerkonto anlegen | createAccount.feature |
4 | Konto löschen | deleteAccount.feature |
Die Namenskonvention für den Feature-Namen und den Namen der Feature-Datei hängt von der Wahl der Person ab. In Cucumber gibt es keine Grundregel für Namen.
Eine einfache Feature-Datei besteht aus den folgenden Schlüsselwörtern / Teilen:
Feature - Name der zu testenden Funktion.
Description (optional) - Beschreiben Sie die zu testende Funktion.
Scenario - Was ist das Testszenario?
Given - Voraussetzung, bevor die Testschritte ausgeführt werden.
When - Spezifische Bedingung, die übereinstimmen sollte, um den nächsten Schritt auszuführen.
Then - Was soll passieren, wenn die unter WANN genannte Bedingung erfüllt ist?
Beispiel
Feature - Benutzeranmeldung auf der Website für soziale Netzwerke.
Der Benutzer sollte sich auf der Website für soziale Netzwerke anmelden können, wenn der Benutzername und das Kennwort korrekt sind.
Dem Benutzer sollte eine Fehlermeldung angezeigt werden, wenn der Benutzername und das Passwort falsch sind.
Der Benutzer sollte zur Startseite navigiert werden, wenn der Benutzername und das Passwort korrekt sind.
Outline - Anmeldefunktion für eine Social-Networking-Site.
Der angegebene Benutzer navigiert zu Facebook. Wenn ich den Benutzernamen als "<Benutzername>" und das Passwort als "<Kennwort>" eingebe. Dann sollte die Anmeldung nicht erfolgreich sein.
| username | password |
| username1 | password1 |
* AND Das Schlüsselwort wird verwendet, um die Verbindung zwischen zwei Bedingungen anzuzeigen. AND kann mit allen anderen Schlüsselwörtern wie verwendet werden GIVEN, WHEN und THEN.
In der Feature-Datei sind keine logischen Details geschrieben.
Schritte Definitionen
Wir haben unsere Feature-Datei mit den definierten Testszenarien fertig. Dies ist jedoch nicht die vollständige Aufgabe. Cucumber weiß nicht genau, welcher Code für ein bestimmtes in einer Feature-Datei beschriebenes Szenario ausgeführt werden soll.
Dies erfordert eine Zwischenschrittdefinitionsdatei. Die Schrittdefinitionsdatei speichert die Zuordnung zwischen jedem Schritt des in der Feature-Datei definierten Szenarios mit einem auszuführenden Funktionscode.
Wenn Cucumber nun einen Schritt des in der Feature-Datei genannten Szenarios ausführt, scannt es die Schrittdefinitionsdatei und ermittelt, welche Funktion aufgerufen werden soll.
Beispiel für eine Schrittdefinitionsdatei
public void goToFacebook() {
driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When "^user logs in using Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$"
public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
driver.findElement(By.id("email")).sendKeys(arg1);
driver.findElement(By.id("pass")).sendKeys(arg2);
driver.findElement(By.id("u_0_v")).click();
}
@Then"^login should be unsuccessful$"
public void validateRelogin() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test Pass");
} else {
System.out.println("Test Failed");
}
driver.close();
}
Mit jeder Funktion können Sie den Code, den Sie mit jedem Testschritt ausführen möchten (dh GIVEN / THEN / WHEN), in die Schrittdefinitionsdatei schreiben. Stellen Sie sicher, dass für jeden Schritt Code / Funktion definiert wurde.
Diese Funktion kann Java-Funktionen sein, bei denen wir sowohl Java- als auch Selenium-Befehle verwenden können, um unsere Testschritte zu automatisieren.