Cetriolo - Annotazioni

Annotationè un testo predefinito, che ha un significato specifico. Consente al compilatore / interprete di sapere cosa deve essere fatto durante l'esecuzione. Il cetriolo ha le seguenti annotazioni:

  • Given -

    • Descrive il prerequisito per l'esecuzione del test.

    • Esempio: DATO Sono un utente di Facebook

  • When -

    • Definisce il punto di attivazione per l'esecuzione di qualsiasi scenario di test.

    • Esempio: QUANDO inserisco "<username>"

  • Then -

    • Quindi contiene il risultato atteso per l'esecuzione del test.

    • Esempio: POI il login dovrebbe essere riuscito.

  • And -

    • Fornisce la condizione AND logica tra due istruzioni. AND può essere utilizzato insieme alle dichiarazioni GIVEN, WHEN e THEN.

    • Esempio: QUANDO inserisco "<username>" E inserisco "<password>"

  • But -

    • Indica la condizione OR logica tra due istruzioni. OR può essere utilizzato insieme alle istruzioni GIVEN, WHEN e THEN.

    • Esempio: POI il login dovrebbe essere riuscito. MA la home page non dovrebbe mancare.

  • Scenario -

    • I dettagli sullo scenario sotto il test devono essere acquisiti dopo la parola chiave "Scenario:"

    • Esempio -

      Scenario:

      DATO Sono un utente di Facebook

      QUANDO entro nel mio

      E inserisco il mio

      POI il login dovrebbe avere successo.

      MA la home page non dovrebbe mancare.

  • Scenario Outline - (Da trattare in seguito)

  • Examples - (Da trattare in seguito)

  • Background -

    • Lo sfondo generalmente contiene le istruzioni su cosa impostare prima dell'esecuzione di ogni scenario. Tuttavia, viene eseguito dopo l'hook "Before" (da trattare in seguito). Quindi questo è l'ideale per essere utilizzato per il codice quando vogliamo impostare il browser web o vogliamo stabilire la connettività del database.

      • Esempio -

        Sfondo:

        Vai alla home page di Facebook.

Scenario di esempio

Automatizziamo uno scenario per comprendere meglio le annotazioni.

Step 1

Crea un progetto di test Maven denominato come AnnotationTest.

  • Vai a File → Nuovo → Altri → Maven → Progetto Maven → Avanti.

  • Fornisci l'ID del gruppo (l'ID del gruppo identificherà il tuo progetto in modo univoco in tutti i progetti).

  • Fornisci ID artefatto (l'ID artefatto è il nome del vaso senza versione. Puoi scegliere qualsiasi nome in minuscolo).

  • Fare clic su Fine.

  • Aperto pom.xml −

    • Vai a Esplora pacchetti sul lato sinistro di Eclipse.

    • Espandi il progetto AnnotationTest.

    • Individua il file pom.xml.

    • Fare clic con il tasto destro e selezionare l'opzione Apri con "Editor di testo".

  • Aggiungi dipendenza per Selenium - Questo indicherà Maven, quali file jar Selenium devono essere scaricati dal repository centrale al repository locale.

    • Apri pom.xml è in modalità di modifica, crea il tag delle dipendenze (<dependencies> </dependencies>), all'interno del tag del progetto.

    • All'interno del tag dependencies, crea il tag dependency (<dependency> </dependency>).

    • Fornisci le seguenti informazioni all'interno del tag di dipendenza.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Aggiungi dipendenza per Cucumber-Java: questo indicherà Maven, quali file Cucumber devono essere scaricati dal repository centrale al repository locale.

    • Crea un altro tag di dipendenza.

    • Fornisci le seguenti informazioni all'interno del tag di dipendenza.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Aggiungi dipendenza per Cucumber-JUnit - Questo indicherà Maven, quali file Cucumber JUnit devono essere scaricati dal repository centrale al repository locale.

    • Crea un altro tag di dipendenza.

    • Fornisci le seguenti informazioni all'interno del tag di dipendenza.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Aggiungi dipendenza per JUnit: indica Maven, quali file JUnit devono essere scaricati dal repository centrale al repository locale.

    • Crea un altro tag di dipendenza.

    • Fornisci le seguenti informazioni all'interno del tag di dipendenza.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Verifica i binari.

    • Una volta modificato con successo pom.xml, salvalo.

    • Vai a Progetto → Pulisci - Ci vorranno alcuni minuti.

Step 2

Crea un pacchetto denominato Annotation in src/test/java

  • Seleziona il progetto appena creato.

  • Fare clic con il tasto destro e selezionare "Nuovo".

  • Seleziona l'opzione come "Pacchetto".

  • Denominalo come "Annotazione".

  • Salvarlo.

Step 3

Crea un file di funzionalità denominato annotation.feature.

  • Seleziona e fai clic con il pulsante destro del mouse sulla struttura del pacchetto.

  • Fare clic su "Nuovo" file.

  • Assegna al file un nome come outline.feature.

  • Scrivi il testo seguente all'interno del file e salvalo.

Feature: annotation 
#This is how background can be used to eliminate duplicate steps 

Background: 
   User navigates to Facebook Given 
   I am on Facebook login page 

#Scenario with AND 
Scenario: 
   When I enter username as "TOM"
   And I enter password as "JERRY" 
   Then Login should fail 

#Scenario with BUT 
Scenario: 
   When I enter username as "TOM" 
   And I enter password as "JERRY" 
   Then Login should fail 
   But Relogin option should be available

Step 4

Crea un file di definizione del passaggio.

  • Seleziona e fai clic con il pulsante destro del mouse sulla struttura del pacchetto.

  • Fare clic su "Nuovo" file.

  • Assegna al file il nome annotation.java

  • Scrivi il testo seguente all'interno del file e salvalo.

package Annotation; 

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 annotation { 
   WebDriver driver = null; 
   @Given("^I am on Facebook login page$") 
	
   public void goToFacebook() { 
      driver = new FirefoxDriver(); 
      driver.navigate().to("https://www.facebook.com/"); 
   }
	
   @When("^I enter username as \"(.*)\"$") 
   public void enterUsername(String arg1) {   
      driver.findElement(By.id("email")).sendKeys(arg1); 
   }
	
   @When ("^I enter password as \"(.*)\"$") 
   public void enterPassword(String arg1) {
      driver.findElement(By.id("pass")).sendKeys(arg1);
      driver.findElement(By.id("u_0_v")).click(); 
   } 
	
   @Then("^Login should fail$") 
   public void checkFail() {  
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test1 Pass"); 
      } else { 
         System.out.println("Test1 Failed"); 
      } 
      driver.close(); 
   }
	
   @Then("^Relogin option should be available$") 
   public void checkRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test2 Pass"); 
      } else { 
         System.out.println("Test2 Failed"); 
      } 
      driver.close(); 
   }
}

Step 5

Crea un file di classe corridore.

  • Seleziona e fai clic con il pulsante destro del mouse sulla struttura del pacchetto.

  • Fare clic su "Nuovo" file.

  • Assegna un nome al file, ad esempio runTest.java

  • Scrivi il testo seguente all'interno del file e salvalo.

package Annotation; 

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

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

public class runTest { }

Step 6

Esegui il test utilizzando l'opzione -

  • Seleziona il file runTest.java da Esplora pacchetti.

  • Fare clic con il tasto destro e selezionare l'opzione ‘Run as’

  • Seleziona JUnit test.

Osserverai le seguenti cose quando esegui questo file di classe:

  • Facebook si apre in una nuova istanza del browser Web Firefox.

  • TOM verrà passato come input al campo del nome utente.

  • JERRY verrà passato come input al campo della password.

  • Fare clic su Login.

  • Sul browser verrà visualizzato un messaggio relativo all'accesso non riuscito.

  • Nella console, vedrai stampato "Test Pass"

  • Passaggio risultato da 1. a 5. Verrà eseguito nuovamente per nome utente come "" e password come "".