Pepino - Anotaciones
Annotationes un texto predefinido, que tiene un significado específico. Le permite al compilador / intérprete saber qué se debe hacer después de la ejecución. Pepino tiene las siguientes anotaciones:
Given -
Describe el requisito previo para que se ejecute la prueba.
Ejemplo: DADO que soy un usuario de Facebook
When -
Define el punto de activación para la ejecución de cualquier escenario de prueba.
Ejemplo: CUANDO ingreso "<nombre de usuario>"
Then -
Luego contiene el resultado esperado para que se ejecute la prueba.
Ejemplo: ENTONCES el inicio de sesión debería ser exitoso.
And -
Proporciona la condición AND lógica entre dos declaraciones. Y se puede utilizar junto con las instrucciones GIVEN, WHEN y THEN.
Ejemplo: CUANDO ingreso mi "<nombre de usuario>" Y mi "<contraseña>"
But -
Significa una condición lógica OR entre dos declaraciones. OR se puede utilizar junto con las declaraciones GIVEN, WHEN y THEN.
Ejemplo: ENTONCES el inicio de sesión debería ser exitoso. PERO no debe faltar la página de inicio.
Scenario -
Los detalles sobre el escenario bajo prueba deben capturarse después de la palabra clave "Escenario:"
Ejemplo -
Guión:
DADO Soy usuario de Facebook
CUANDO entro en mi
Y entro en mi
ENTONCES el inicio de sesión debe ser exitoso.
PERO no debe faltar la página de inicio.
Scenario Outline - (se tratará más adelante)
Examples - (se tratará más adelante)
Background -
En general, los antecedentes tienen instrucciones sobre qué configurar antes de que se ejecute cada escenario. Sin embargo, se ejecuta después del gancho "Antes" (se tratará más adelante). Así que esto es ideal para usarlo como código cuando queremos configurar el navegador web o queremos establecer la conectividad de la base de datos.
Ejemplo -
Antecedentes:
Vaya a la página de inicio de Facebook.
Escenario de ejemplo
Automaticemos un escenario para comprender mejor las anotaciones.
Step 1
Cree un proyecto de prueba de Maven con el nombre AnnotationTest.
Vaya a Archivo → Nuevo → Otros → Maven → Proyecto Maven → Siguiente.
Proporcione la identificación del grupo (la identificación del grupo identificará su proyecto de manera única en todos los proyectos).
Proporcione la identificación del artefacto (la identificación del artefacto es el nombre del jar sin la versión. Puede elegir cualquier nombre que esté en minúsculas).
Haga clic en Finalizar.
Abierto pom.xml −
Vaya al explorador de paquetes en el lado izquierdo de Eclipse.
Expanda el proyecto AnnotationTest.
Busque el archivo pom.xml.
Haga clic derecho y seleccione la opción Abrir con “Editor de texto”.
Agregar dependencia para Selenium: esto indicará Maven, qué archivos jar de Selenium se deben descargar del repositorio central al repositorio local.
Abrir pom.xml está en modo de edición, crear etiqueta de dependencias (<dependencies> </dependencies>), dentro de la etiqueta del proyecto.
Dentro de la etiqueta de dependencias, cree la etiqueta de dependencia (<dependency> </dependency>).
Proporcione la siguiente información dentro de la etiqueta de dependencia.
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.47.1</version>
</dependency>
Agregar dependencia para Cucumber-Java: esto indicará Maven, qué archivos de Cucumber se descargarán del repositorio central al repositorio local.
Cree una etiqueta de dependencia más.
Proporcione la siguiente información dentro de la etiqueta de dependencia.
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
Agregar dependencia para Cucumber-JUnit: esto indicará a Maven, qué archivos de Cucumber JUnit se deben descargar desde el repositorio central al repositorio local.
Cree una etiqueta de dependencia más.
Proporcione la siguiente información dentro de la etiqueta de dependencia.
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
Agregar dependencia para JUnit: esto indicará Maven, qué archivos JUnit se deben descargar desde el repositorio central al repositorio local.
Cree una etiqueta de dependencia más.
Proporcione la siguiente información dentro de la etiqueta de dependencia.
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
Verifique los binarios.
Una vez que pom.xml se haya editado correctamente, guárdelo.
Vaya a Proyecto → Limpiar: le llevará unos minutos.
Step 2
Cree un paquete llamado Anotación en src/test/java
Seleccione el proyecto recién creado.
Haga clic derecho y seleccione 'Nuevo'.
Seleccione la opción como 'Paquete'.
Nómbrelo como 'Anotación'.
Guárdalo.
Step 3
Cree un archivo de características llamado annotation.feature.
Seleccione y haga clic con el botón derecho en el esquema del paquete.
Haga clic en el archivo 'Nuevo'.
Asigne al archivo un nombre como outline.feature.
Escriba el siguiente texto dentro del archivo y guárdelo.
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
Cree un archivo de definición de pasos.
Seleccione y haga clic con el botón derecho en el esquema del paquete.
Haga clic en el archivo 'Nuevo'.
Dar el nombre del archivo como annotation.java
Escriba el siguiente texto dentro del archivo y guárdelo.
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 archivo de clase de corredor.
Seleccione y haga clic con el botón derecho en el esquema del paquete.
Haga clic en el archivo 'Nuevo'.
Asigne un nombre al archivo, como runTest.java
Escriba el siguiente texto dentro del archivo y guárdelo.
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
Ejecute la prueba usando la opción -
Seleccione el archivo runTest.java del explorador de paquetes.
Haga clic derecho y seleccione la opción ‘Run as’
Seleccione prueba JUnit.
Observará las siguientes cosas cuando ejecute este archivo de clase:
Facebook se abre en una nueva instancia del navegador web Firefox.
TOM se pasará como entrada al campo de nombre de usuario.
JERRY se pasará como entrada al campo de contraseña.
Se hará clic en el inicio de sesión.
Se mostrará un mensaje en el navegador con respecto al inicio de sesión fallido.
En la consola, verá "Test Pass" impreso
Resultado del paso 1. a 5. Se volverá a ejecutar para el nombre de usuario como "" y la contraseña como "".