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