Pepino - Esquema del escenario

Scenario outlinebásicamente reemplaza la variable / palabras clave con el valor de la tabla. Cada fila de la tabla se considera un escenario.

Continuemos con el mismo ejemplo de la función de inicio de sesión de Facebook. Hasta ahora hemos estado ejecutando un escenario: al proporcionar el nombre de usuario correcto, el inicio de sesión es exitoso. Ahora, suponga que queremos verificar si el inicio de sesión es exitoso para los tres posibles tipos de entradas, que son nombre de usuario, dirección de correo electrónico o número de teléfono. Para lograr esto, necesitaremos escribir tres escenarios diferentes, donde cada escenario variará con el tipo de entrada, el inicio de sesión es exitoso. En este caso, los escenarios se verán como los siguientes.

Scenario:

El usuario dado navega a Facebook

Cuando ingreso el nombre de usuario y la contraseña correctos

Entonces el inicio de sesión debería ser exitoso

Scenario:

El usuario dado navega a Facebook

Cuando ingreso la dirección de correo electrónico y la contraseña correctas

Entonces el inicio de sesión debería ser exitoso

Scenario:

El usuario dado navega a Facebook

Cuando ingreso el número de teléfono y la contraseña correctos

Entonces el inicio de sesión debería ser exitoso

Aquí, si vemos de cerca, para los tres escenarios anteriores: las declaraciones son iguales, solo el parámetro de entrada (nombre de usuario / dirección de correo electrónico / número de teléfono) está cambiando. Ahí es donde entra en escena la importancia del esquema del escenario.

Cuando definimos cualquier escenario con un esquema de escenario, podemos especificar un escenario de prueba y en la parte inferior podemos proporcionar una serie de entradas. El escenario se ejecutará tantas veces como el número de entradas proporcionadas.

Ejemplo

Creemos un ejemplo de un esquema de escenario:

Step 1 - Cree un proyecto de prueba de Maven llamado ScenarioOutlineTest

  • 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 CucumberTest.

    • 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 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-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Agregar dependencia para JUnit: esto indicará Maven, qué archivos JUnit se descargarán 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>
  • Agregar dependencia para JUnit: esto indicará Maven, qué archivos JUnit se descargarán 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 "esquema" debajo src/test/java

Step 3 - Cree un archivo de características llamado “outline.feature”

  • Seleccione y haga clic con el botón derecho en el esquema del paquete.

  • Haga clic en el archivo 'Nuevo'.

  • Dé el nombre del archivo como “outline.feature”

    • Escriba el siguiente texto dentro del archivo y guárdelo.

      Feature - Esquema del escenario

      Scenario Outline - Funcionalidad de inicio de sesión para un sitio de redes sociales.

      El usuario dado navega a Facebook

      Cuando ingreso el nombre de usuario como "<nombre de usuario>" y la contraseña como "<contraseña>"

      Entonces el inicio de sesión no debería ser exitoso

Example -

| username  | password  | 
| username1 | password1 | 
| username2 | password2 |

Note- Aquí, la anotación de ejemplo describe el rango de entrada que se proporcionará en la ejecución del escenario. El escenario de prueba se ejecutará para cada una de las entradas proporcionadas. Entonces, en el ejemplo dado, el escenario de prueba se ejecutará tres veces.

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 stepdefinition.java

  • Escriba el siguiente texto dentro del archivo y guárdelo.

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; 
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- En el código anterior, tenemos que definir una función que tenga dos argumentos de entrada: un nombre de usuario y otro será para contraseña. Entonces, para cada conjunto de entrada proporcionado en la etiqueta de ejemplo, se ejecutará el conjunto de DADO, CUÁNDO y ENTONCES.

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

  • Dé el nombre del archivo como runTest.java

  • Escriba el siguiente texto dentro del archivo y guárdelo.

package Outline; 

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

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

public class runTest { }
  • Ejecute la prueba usando la opción -

    • Seleccione runTest.java archivo 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.

  • El nombre de usuario1 y la contraseña1 se pasarán como entrada al campo de nombre de usuario y 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á impreso "Test Pass".

  • Los resultados del paso 1 a 5 se volverán a ejecutar para el nombre de usuario2 y la contraseña2.

En pocas palabras, cuando el escenario no cambia pero solo cambia el valor de los datos, es recomendable utilizar tablas de datos de esquema de escenario.