Gurke - Befehlszeilenoptionen

Gurke kann verwendet werden, um fast jedes Computersystem zu testen. Bisher haben wir gesehen, wie ein Test mit Eclipse IDE ausgeführt wird. Es gibt noch eine Möglichkeit, den Gurkentest über die Befehlszeilenschnittstelle auszuführen. Was ist der Vorteil davon?

Das Ausführen eines Testframeworks vom Terminal aus hat seine eigenen Vorteile, z. B. das Überschreiben der im Code genannten Ausführungskonfigurationen.

Führen Sie nach der Systemkonfiguration die folgenden Schritte aus, um den Gurkentest mit Eingabeaufforderung auszuführen.

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

  • 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 Sie pom.xml -

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

    • Erweitern Sie das Projekt CucumberTest.

    • Lokalisieren pom.xml Datei.

    • 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 "Gliederung" unter src / test / java

Step 3 - Erstellen Sie eine Feature-Datei mit dem Namen "commandLine.feature".

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

  • Klicken Sie auf "Neu".

  • Geben Sie der Datei einen Namen wie "commandLine.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.

    Vorausgesetzt, der Benutzer navigiert zu Facebook

    Wenn ich den Benutzernamen als "<Benutzername>" und das Passwort als "<Kennwort>" eingebe

    Dann sollte die Anmeldung nicht erfolgreich sein

Beispiele

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

  • Benennen Sie die Datei als commandLine.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; i
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 Code müssen wir eine Funktion mit zwei Eingabeargumenten definieren: Ein Benutzername und ein anderer für das Passwort. Für jeden Eingabesatz, der im Beispiel-Tag bereitgestellt wird, wird ein Satz von 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 der Datei einen Namen wie: 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 { }
  • Öffnen Sie eine Eingabeaufforderung.

  • Wechseln Sie in das Verzeichnis, in dem sich dieses Paket "commandLine" befindet. e: \ Workspace \ LoginTest \ src> CD-Test \ Java

  • Führen Sie den Befehl mvn test aus: Sie werden sehen, dass alle in der Feature-Datei beschriebenen Szenarien ausgeführt wurden (falls kein Fehler vorliegt). Schließlich finden Sie unten die folgenden Informationen.

Ergebnis

This describes the total test run, along with failure if any.

Der vorherige Befehl führt alles aus, wie in der JUnit Runner-Klasse erwähnt. Wenn Sie jedoch die im Runner genannten Konfigurationen überschreiben möchten, folgen die folgenden Beispiele.

  • Führen Sie nun den Befehl mvn test - Dcucumber.options = "- help" an der Eingabeaufforderung aus. Wenn Sie dies ausführen, werden alle verfügbaren Optionen gedruckt.

  • Um nur die spezifischen Tags auszuführen, führen Sie den Befehl mvn test -Dcucumber.options = "- tags @SmokeTest" an der Eingabeaufforderung aus. Es werden nur Tags ausgeführt, die mit @SmokeTest markiert sind.

  • Um das Format des Ergebnisses zu ändern, führen Sie den Befehl E: \ Workspace \ LoginTest> mvn test -Dcucumber.options = "- Plugin junit: target / cucumber-junit-report.xml" an der Eingabeaufforderung aus. Es ändert den Bericht Format zum JUnit-Berichtsgenerator.