Gurke - Datentabellen

Während wir an der Automatisierung arbeiten, können verschiedene Szenarien auftreten. Jedes Szenario hat eine andere Bedeutung und Bedürfnisse.

Von Anfang an haben wir ein Beispiel für die Anmeldefunktion für eine Social-Networking-Site genommen, bei der nur zwei Eingabeparameter übergeben werden mussten. Lassen Sie uns über eine weitere Möglichkeit nachdenken. Wie wäre es mit der Funktion "Registrierung neuer Benutzer"? Was können normalerweise die Eingabeparameter sein, wenn ein neuer Benutzer für eine Social-Networking-Site registriert wird? So etwas wie das Folgende -

  • Nutzername
  • E-Mail-Addresse
  • Password
  • Kennwort erneut eingeben
  • Birthdate
  • Gender
  • Telefonnummer

Feature - Neue Benutzerregistrierung.

Stellen Sie sicher, dass die Registrierung neuer Benutzer nicht erfolgreich ist, nachdem Sie die falschen Eingaben übergeben haben.

Vorausgesetzt, ich bin auf einer neuen Benutzerregistrierungsseite.

Wenn ich den Benutzernamen und eine E-Mail-Adresse als E-Mail-Adresse und Passwort als und das Passwort als und das Geburtsdatum als und das Geschlecht als und die Telefonnummer erneut eingebe, sollte die Benutzerregistrierung nicht erfolgreich sein.

Auf den ersten Blick sieht es etwas chaotisch aus. Gibt es eine bessere Möglichkeit, einen solchen Teil der Eingaben zu verwalten? Die Antwort kann "Datentabelle" sein. Die Datentabelle ist eine Eingabe, die für ein einzelnes Tag bereitgestellt werden muss. Dieses Tag kann GIVEN, WHEN oder THEN sein.

Lassen Sie uns das obige Szenario mit Hilfe der Datentabelle schreiben und es wird wie folgt aussehen:

Vorausgesetzt, ich bin auf einer neuen Benutzerregistrierungsseite

Wenn ich gültige Daten auf der Seite eingebe

| Fields                 | Values              |
| First Name             | Tom                 |
| Last Name              | Kenny               |
| Email Address          | [email protected] |
| Re-enter Email Address | [email protected] |
| Password               | Password1           |
| Birthdate              | 01                  |

Dann sollte die Benutzerregistrierung erfolgreich sein.

Beispiel

Lassen Sie uns ein Beispiel für eine Datentabelle automatisieren.

Step 1 - Erstellen Sie ein Maven-Testprojekt mit dem Namen "DataTableTest".

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

  • Zur Verfügung stellen group Id (Die Gruppen-ID identifiziert Ihr Projekt in allen Projekten eindeutig.)

  • Zur Verfügung stellen artifact Id (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 Sie 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>
  • Ü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 dataTable unter src/test/java

Step 3 - Erstellen Sie eine Feature-Datei.

  • Erstellen Sie eine Feature-Datei mit dem Namen dataTable.Feature in der Paketdatentabelle (detailliertere Schritte finden Sie im Abschnitt Szenarioübersicht).

  • Schreiben Sie den folgenden Text.

    Feature - Datentabelle

    Stellen Sie sicher, dass die Registrierung neuer Benutzer nach Übergabe falscher Eingaben nicht erfolgreich ist.

    Scenario:

    Vorausgesetzt, ich bin auf der neuen Benutzerregistrierungsseite

    Wenn ich ungültige Daten auf der Seite eingebe

| Fields                 | Values              |
| First Name             | Tom                 |
| Last Name              | Kenny               |
| Email Address          | [email protected] |
| Re-enter Email Address | [email protected] |
| Password               | Password1           |
| Birthdate              | 01                  |

Dann sollte die Benutzerregistrierung nicht erfolgreich sein

  • Speicher die Datei.

Step 4 - Erstellen Sie eine Schrittdefinitionsdatei.

  • Erstellen Sie die Schrittdefinitionsdatei mit dem Namen 'dataTable.java' in der Paketdatentabelle (detailliertere Schritte finden Sie im Abschnitt Szenarioübersicht).

  • Schreiben Sie den folgenden Code.

package dataTable; 

import java.util.List; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.support.ui.Select;

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

public class stepdefinition { 
   WebDriver driver = null;
	
   @Given("^I am on new user registration page$") 
   public void goToFacebook() { 
      //Intiate web browser instance. driver = new FirefoxDriver();
      driver.navigate().to("https://www.facebook.com/"); 
   } 
	
   @When("^I enter invalid data on the page$") 
   public void enterData(DataTable table){ 
      //Initialize data table 
      List<list> data = table.raw();
      System.out.println(data.get(1).get(1)); 
      
      //Enter data
      driver.findElement(By.name("firstname")).sendKeys(data.get(1).get(1));
      driver.findElement(By.name("lastname")).sendKeys(data.get(2).get(1));
      driver.findElement(By.name("reg_email__")).sendKeys(data.get(3).get(1));     
      driver.findElement(By.name("reg_email_confirmation__")).
         sendKeys(data.get(4).get(1)); 
      driver.findElement(By.name("reg_passwd__")).sendKeys(data.get(5).get(1)); 
      
      Select dropdownB = new Select(driver.findElement(By.name("birthday_day"))); 
      dropdownB.selectByValue("15"); 
		
      Select dropdownM = new Select(driver.findElement(By.name("birthday_month")));
      dropdownM.selectByValue("6"); 
		
      Select dropdownY = new Select(driver.findElement(By.name("birthday_year")));
      dropdownY.selectByValue("1990"); 
		
      driver.findElement(By.className("_58mt")).click(); 
      // Click submit button driver.findElement(By.name("websubmit")).click(); 
   } 
	
   @Then("^User registration should be unsuccessful$") 
   public void User_registration_should_be_unsuccessful() {
      if(driver.getCurrentUrl().equalsIgnoreCase("https://www.facebook.com/")){
         System.out.println("Test Pass"); 
      } else { 
         System.out.println("Test Failed"); 
      } 
      driver.close(); 
   } 
}
  • Speicher die Datei.

Step 5 - Erstellen Sie eine Runner-Klassendatei.

  • Erstellen Sie eine Runner-Klasse mit dem Namen runTest.java im Paket.

  • Schreiben Sie den folgenden Code.

package dataTable; 

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

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
 
public class runTest { }
  • Speicher die Datei.

  • Führen Sie den Test mit der Option aus

    • Wählen Sie im Paket-Explorer die Datei runTest.java aus.

    • Klicken Sie mit der rechten Maustaste und wählen Sie die Option Ausführen als.

    • Wählen Sie JUnit-Test.

Bei erfolgreicher Ausführung können Sie die folgenden Dinge beachten.

  • Facebook-Website wird geladen.

  • Die Daten werden auf der Registrierungsseite eingegeben.

  • Die Schaltfläche Senden wird angeklickt.

  • Wir werden sehen, dass die Homepage nicht angezeigt wird und "Test Pass" auf die Konsole geschrieben wird.