Gurke - Szenario Gliederung

Scenario outlineErsetzt grundsätzlich Variablen / Schlüsselwörter durch den Wert aus der Tabelle. Jede Zeile in der Tabelle wird als Szenario betrachtet.

Fahren wir mit demselben Beispiel der Facebook-Anmeldefunktion fort. Bisher haben wir ein Szenario ausgeführt: Nach Angabe des richtigen Benutzernamens ist die Anmeldung erfolgreich. Angenommen, wir möchten überprüfen, ob die Anmeldung für alle drei möglichen Arten von Eingaben erfolgreich ist, nämlich Benutzername, E-Mail-Adresse oder Telefonnummer. Um dies zu erreichen, müssen drei verschiedene Szenarien geschrieben werden, wobei jedes Szenario von der Art der Eingabe abhängt. Die Anmeldung ist erfolgreich. In diesem Fall sehen die Szenarien wie folgt aus.

Scenario:

Der angegebene Benutzer navigiert zu Facebook

Wenn ich den richtigen Benutzernamen und das richtige Passwort eingebe

Dann sollte die Anmeldung erfolgreich sein

Scenario:

Der angegebene Benutzer navigiert zu Facebook

Wenn ich die richtige E-Mail-Adresse und das richtige Passwort eingebe

Dann sollte die Anmeldung erfolgreich sein

Scenario:

Der angegebene Benutzer navigiert zu Facebook

Wenn ich die richtige Telefonnummer und das richtige Passwort eingebe

Dann sollte die Anmeldung erfolgreich sein

Hier sehen wir, wenn wir genau sehen, für die obigen drei Szenarien: Anweisungen sind gleich, nur der Eingabeparameter (Benutzername / E-Mail-Adresse / Telefonnummer) ändert sich. Hier kommt die Bedeutung der Szenariokontur ins Spiel.

Wenn wir ein Szenario mit Szenarioübersicht definieren, können wir ein Testszenario angeben und am Ende eine Reihe von Eingaben bereitstellen. Das Szenario wird so oft ausgeführt wie die Anzahl der bereitgestellten Eingaben.

Beispiel

Lassen Sie uns ein Beispiel für eine Szenariokontur erstellen -

Step 1 - Erstellen Sie ein Maven-Testprojekt mit dem Namen ScenarioOutlineTest

  • Gehen Sie zu Datei → Neu → Andere → Maven → Maven-Projekt → Weiter.

  • Geben Sie die Gruppen-ID an (die Gruppen-ID identifiziert Ihr Projekt in allen Projekten eindeutig).

  • Geben Sie die Artefakt-ID an (die Artefakt-ID ist der Name des Glases ohne Version. Sie können einen beliebigen Namen in Kleinbuchstaben auswählen).

  • Klicken Sie auf Fertig stellen.

  • Öffnen pom.xml - -

    • Gehen Sie zum Paket-Explorer auf der linken Seite von Eclipse.

    • Erweitern Sie das Projekt CucumberTest.

    • Suchen Sie die Datei pom.xml.

    • Klicken Sie mit der rechten Maustaste und wählen Sie die Option "Mit" Texteditor öffnen ".

  • Abhängigkeit für Selen hinzufügen - Dies zeigt Maven an, welche Selenium-JAR-Dateien vom zentralen Repository in das lokale Repository heruntergeladen werden sollen.

    • Öffnen Sie pom.xml im Bearbeitungsmodus. Erstellen Sie ein Abhängigkeits-Tag (<Abhängigkeiten> </ Abhängigkeiten>) innerhalb des Projekt-Tags.

    • Erstellen Sie innerhalb des Abhängigkeits-Tags ein Abhängigkeitstag (<Abhängigkeit> </ Abhängigkeit>).

    • Geben Sie die folgenden Informationen im Abhängigkeitstag an.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Abhängigkeit für Cucumber-Java hinzufügen: Dies gibt Maven an, welche Cucumber-Dateien vom zentralen Repository in das lokale Repository heruntergeladen werden sollen.

    • Erstellen Sie ein weiteres Abhängigkeitstag.

    • Geben Sie die folgenden Informationen im Abhängigkeitstag an.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Abhängigkeit für Cucumber-JUnit hinzufügen: Dies gibt Maven an, welche Cucumber JUnit-Dateien vom zentralen Repository in das lokale Repository heruntergeladen werden sollen.

    • Erstellen Sie ein weiteres Abhängigkeitstag.

    • Geben Sie die folgenden Informationen im Abhängigkeitstag an.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Abhängigkeit für JUnit hinzufügen - Dies gibt Maven an, welche JUnit-Dateien vom zentralen Repository in das lokale Repository heruntergeladen werden sollen.

    • Erstellen Sie ein weiteres Abhängigkeitstag.

    • Geben Sie die folgenden Informationen im Abhängigkeitstag an.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Abhängigkeit für JUnit hinzufügen - Dies gibt Maven an, welche JUnit-Dateien vom zentralen Repository in das lokale Repository heruntergeladen werden sollen.

    • Erstellen Sie ein weiteres Abhängigkeitstag.

    • Geben Sie die folgenden Informationen im Abhängigkeitstag an.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Überprüfen Sie die Binärdateien.

    • Sobald pom.xml erfolgreich bearbeitet wurde, speichern Sie es.

    • Gehen Sie zu Projekt → Reinigen - Es dauert einige Minuten.

Step 2 - Erstellen Sie ein Paket mit dem Namen "Gliederung" unter src/test/java

Step 3 - Erstellen Sie eine Feature-Datei mit dem Namen “outline.feature”

  • Wählen Sie die Paketskizze aus und klicken Sie mit der rechten Maustaste darauf.

  • Klicken Sie auf "Neu".

  • Geben Sie den Dateinamen wie z “outline.feature”

    • Schreiben Sie den folgenden Text in die Datei und speichern Sie ihn.

      Feature - Szenarioübersicht

      Scenario 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

Example - -

| username  | password  | 
| username1 | password1 | 
| username2 | password2 |

Note- Hier beschreibt eine Beispielanmerkung den Eingabebereich, der bei der Ausführung des Szenarios bereitgestellt werden soll. Das Testszenario wird für jede der bereitgestellten Eingaben ausgeführt. Im angegebenen Beispiel wird das Testszenario also dreimal ausgeführt.

Step 4 - Erstellen Sie eine Schrittdefinitionsdatei.

  • Wählen Sie die Paketskizze aus und klicken Sie mit der rechten Maustaste darauf.

  • Klicken Sie auf "Neu".

  • Geben Sie den Dateinamen als an stepdefinition.java

  • Schreiben Sie den folgenden Text in die Datei und speichern Sie ihn.

package Outline;
 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class stepdefinition { 
   WebDriver driver = null; 
	
   @Given("^user navigates to facebook$") 
   public void goToFacebook() { 
      driver = new FirefoxDriver(); 
      driver.navigate().to("https://www.facebook.com/"); 
   } 
	
   @When("^I enter 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(); 
   }    
}

Note- Im obigen Code müssen wir eine Funktion mit zwei Eingabeargumenten definieren: Ein Benutzername und ein anderer sind für das Passwort. Für jeden im Beispiel-Tag bereitgestellten Eingabesatz werden also die Sätze GIVEN, WHEN und THEN ausgeführt.

Step 5 - Erstellen Sie eine Runner-Klassendatei.

  • Wählen Sie die Paketskizze aus und klicken Sie mit der rechten Maustaste darauf.

  • Klicken Sie auf "Neu".

  • Geben Sie den Dateinamen wie z runTest.java

  • Schreiben Sie den folgenden Text in die Datei und speichern Sie ihn.

package Outline; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})

public class runTest { }
  • Führen Sie den Test mit der Option - aus.

    • Wählen runTest.java Datei aus dem Paket-Explorer.

    • Klicken Sie mit der rechten Maustaste und wählen Sie die Option ‘Run as’.

    • Wählen Sie JUnit-Test.

Sie werden die folgenden Dinge beachten, wenn Sie diese Klassendatei ausführen

  • Facebook wird in einer neuen Firefox-Webbrowser-Instanz geöffnet.

  • Benutzername1 und Passwort1 werden als Eingabe in das Feld Benutzername und Passwort übergeben.

  • Login wird angeklickt.

  • Im Browser wird eine Meldung angezeigt, dass die Anmeldung nicht erfolgreich war.

  • In der Konsole wird "Test Pass" gedruckt.

  • Die Schritte 1 bis 5 werden für Benutzername2 und Passwort2 erneut ausgeführt.

Kurz gesagt, wenn sich das Szenario nicht ändert, sondern nur der Datenwert geändert wird, ist es ratsam, Szenario-Gliederungsdatentabellen zu verwenden.