Selenium con Cucumber (Tutorial del marco BDD)


En este tutorial, aprenderá cómo integrar Cucumber con Selenium Controlador web.

¿Qué es Cucumber?

Cucumber es un enfoque de prueba que respalda el desarrollo impulsado por el comportamiento (BDD). Explica el comportamiento de la aplicación en un texto sencillo en inglés utilizando el lenguaje Gherkin.

Obtenga más información en – https://www.guru99.com/cucumber-tutorials.html

¿Qué es Selenium?

Selenium es una herramienta de automatización para Prueba de funcion de la aplicación basada en web. Selenium admite diferentes lenguajes como java, ruby, python C#, etc.

Obtenga más información en – https://www.guru99.com/selenium-tutorial.html

¿Por qué utilizar Cucumber con Selenium?

Cucumber y la Selenium son dos tecnologías populares.

La mayoría de las organizaciones utilizan Selenium para pruebas funcionales. Estas organizaciones que están utilizando Selenium, quiere integrarse Selenium con Cucumber as Cucumber petroquímica Es fácil de leer y comprender el flujo de la aplicación.

Cucumber La herramienta se basa en el marco de desarrollo impulsado por el comportamiento que actúa como el puente Entre las siguientes personas:

  1. Ingeniero de Software y Analista de Negocios.
  2. Probador manual y probador de automatización.
  3. Probador manual y desarrolladores.

Cucumber Marco BDD también beneficia al cliente comprender el código de la aplicación Ya que utiliza el lenguaje Gherkin, que es texto simple, cualquier persona de la organización puede comprender el comportamiento del software. La sintaxis de Gherkin está en texto simple, legible y comprensible.

Cucumber con Selenium

Requisito previo para usar Cucumber con Selenium

Antes que empecemos Cucumber Selenium Para la integración necesitamos los siguientes elementos:

  • Selenium archivos jar:
  • Selenium-servidor-independiente

Se puede descargar en http://www.seleniumhq.org/download/

Requisito previo para usar Cucumber con Selenium

Archivos jar para Cucumber :

  • Cucumber-núcleo
  • Cucumber-html
  • cobertura de código de cobertura
  • Cucumber-Java
  • Cucumber-Junito
  • Cucumber-jvm-deps
  • Cucumber-informes
  • Núcleo de Hamcrest
  • Pepinillo
  • junit

Se puede descargar en https://mvnrepository.com/search?q=Cucumber

Debe buscar archivos y descargarlos uno por uno individualmente.

Por ejemplo, le mostraremos cómo descargar uno de los archivos jar, es decir, "Cucumber-centro."

Haga clic en el enlace de descarga de arriba. Redirige al siguiente sitio. Ahora busque el frasco en particular, es decir, 'Cucumber Core' como se muestra en la captura de pantalla a continuación:

Requisito previo para usar Cucumber con Selenium

En la página siguiente, haga clic en la versión 1.2.2,

Requisito previo para usar Cucumber con Selenium

En la siguiente pantalla, haga clic en descargar para obtener el 'Cucumber Archivo jar central.

Requisito previo para usar Cucumber con Selenium

Nota: : Para su comodidad, hemos incluido los archivos jar necesarios para descargar desde Maven. aquí. Con el tiempo, estos frascos pueden actualizarse y volverse incompatibles. Se le solicita que los descargue utilizando el método ilustrado arriba.

Pruebas de automatización usando Cucumber con Selenium.

Estudiemos los pasos a utilizar. Cucumber con selenio paso a paso. Aquí cubriremos 3 escenarios:

  • Escenario 1: imprimir texto en la consola.
  • Escenario 2: ingrese la credencial de inicio de sesión y restablezca el valor.
  • Escenario 3: Ingrese la credencial de inicio de sesión en Guru99 y restablezca el valor. Haga esto para 3 conjuntos de datos.

Escenario 1: imprimir texto en la consola.

En este escenario, simplemente imprimimos el texto en la consola usando Cucumber.

Paso 1) Crear proyecto en eclipse.

Crear Java proyecto con el nombre “CucumberCon Selenium”como se muestra en la siguiente captura de pantalla.

Pruebas de automatización usando Cucumber con Selenium

Pruebas de automatización usando Cucumber con Selenium

Paso 2) Agregar archivos Jar en el proyecto.

Haga clic derecho en el Proyecto> Seleccionar Propiedades> Ir a Java Construir camino. Agregue todas las bibliotecas descargadas anteriormente.

Pruebas de automatización usando Cucumber con Selenium

Paso 3) Creando archivo de características

Para crear un archivo de funciones, primero cree la carpeta de funciones como se muestra a continuación.

Pruebas de automatización usando Cucumber con Selenium

Ahora ingrese el nombre de la carpeta "Características" y haga clic en el botón "Finalizar".

Pruebas de automatización usando Cucumber con Selenium

Pruebas de automatización usando Cucumber con Selenium

Ahora, cree un archivo de funciones en la carpeta "Características" con el nombre "MyTest.feature". El proceso es similar a crear una carpeta.

Pruebas de automatización usando Cucumber con Selenium

Nota: Es posible que necesite instalar el Cucumber Eclipse Complemento para que esto funcione. Ir a - Ayuda->Instalar nuevo software->copiar y pegar el enlace http://cucumber.github.io/cucumber-eclipse/update-site/ e instalar

Paso 4) Escribe escenarios.

Las siguientes líneas están escritas en el archivo 'MyTest.feature' usando el lenguaje Gherkin como se muestra a continuación:

Feature: Reset functionality on login page of Application 


Scenario: Verification of Reset button 


Given Open the Firefox and launch the application			


When Enter the Username and Password			


Then Reset the credential			

Explicación del código

Línea 1) En esta línea escribimos funcionalidad empresarial.

Línea 2) En esta línea escribimos un escenario para probar.

Línea 3) En esta línea definimos la condición previa.

Línea 4) En esta línea definimos la acción que debemos realizar.

Línea 4) En esta línea definimos el resultado o resultado esperado.

Paso 5) Cómo escribir un script para el ejecutor de pruebas de selenio Selenium Cucumber diseño de marco

Aquí creamos el paquete 'TestRunner' y luego el archivo de clase 'Runner.java' debajo de él.

package TestRunner;		

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

@RunWith(Cucumber.class)				
@CucumberOptions(features="Features",glue={"StepDefinition"})						
public class Runner 				
{		

}

En lo anterior Cucumber Java código de ejemplo, ejecutamos el prueba de pepino utilizando las siguientes anotaciones:

@Corre con() La anotación informa sobre la clase del corredor de pruebas para comenzar a ejecutar nuestras pruebas.

@CucmberOptions() La anotación se utiliza para establecer algunas propiedades para nuestra prueba de pepino, como archivo de características, definición de pasos, etc.

Captura de pantalla del archivo TestRunner.

Pruebas de automatización usando Cucumber con Selenium

Paso 6) Creación de secuencia de comandos de definición de pasos.

Ahora, aquí creamos el paquete 'StepDefinition' y luego el archivo de script 'Steps.java' debajo de él. Aquí, en realidad, escribimos un script de Selenium para realizar la prueba en Cucumber métodos.

package StepDefinition;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

     
    @Given("^Open the Firefox and launch the application$")				
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
        System.out.println("This Step open the Firefox and launch the application.");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       System.out.println("This step enter the Username and Password on the login page.");					
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {    		
        System.out.println("This step click on the Reset button.");					
    }		

}

En el código anterior, la clase se crea con el nombre "Pasos". Cucumber La anotación se utiliza para mapear con un archivo de características. Cada método de anotación está definido:

@Dado La anotación define el método para abrir Firefox y ejecutar la aplicación.

@Cuando anotación define el método para ingresar el nombre de usuario y la contraseña

@Entonces anotación define el método para restablecer la credencial

En cada método, solo imprimimos un mensaje.

A continuación se muestra la captura de pantalla del script 'Steps.java' y el árbol del proyecto, cómo se ve.

Pruebas de automatización usando Cucumber con Selenium

Nota: La definición de pasos no es más que los pasos que desea realizar con este método del pepino.

Paso 7) Ejecutando el Script.

El usuario puede ejecutar este script desde el script Test runner, es decir, 'Runner.java' como se muestra en la siguiente captura de pantalla.

Pruebas de automatización usando Cucumber con Selenium

Paso 8) Analizar la salida.

Al ejecutar el script 'Runner.java', muestra el texto en la consola. Es el mismo texto definido en el script 'Steps.java'.

Pruebas de automatización usando Cucumber con Selenium

Escenario 2: ingrese la credencial de inicio de sesión y restablezca el valor.

Aquí simplemente ingresaremos Credencial en la página de inicio de sesión de demostración de Guru99 y restableceremos el valor.

Para el escenario 2, necesitamos actualizar solo el script 'Steps.java'. Aquí escribimos el script de Selenium como se muestra en los pasos a continuación. Primero, necesitamos agregar Selenium archivo jar a este proyecto.

Ingrese la credencial de inicio de sesión y restablezca el valor

Paso 1) Aquí actualizamos el script 'Steps.java' como se muestra en el código y la captura de pantalla a continuación.

package StepDefinition;		

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("http://demo.guru99.com/v4");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys("username12");							
       driver.findElement(By.name("password")).sendKeys("password12");							
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

Captura de pantalla del script de selenio anterior.

Ingrese la credencial de inicio de sesión y restablezca el valor

Paso 2) Ejecute el script.

Después de la actualización ejecutamos Runner.java.

Paso 3) Analizar la salida.

En la salida puedes ver lo siguiente:

  • Navegador iniciado.
  • Se abre el sitio de demostración del banco Guru99.
  • El nombre de usuario y la contraseña se colocan en la página de inicio de sesión.
  • Restablecer los valores.

Ingrese la credencial de inicio de sesión y restablezca el valor

Escenario 3: Ingrese la credencial de inicio de sesión en Guru99 y restablezca el valor. Haga esto para 3 conjuntos de datos.

Aquí necesitamos actualizar tanto el 'Step.java' como el archivo de características.

Paso 1) Actualice el archivo de características como se muestra a continuación:

Here we update the feature file with 'Scenario Outline' and  'examples' syntax.

Feature: Reset functionality on login page of Application				


Scenario Outline: Verification of reset button with numbers of credential


Given Open the Firefox and launch the application				


When Enter the Username <username>and Password <password>				


Then Reset the credential						

Examples:                      		

|username  |password         |		

|User1     |password1        |		

|User2     |password2        |		

|User3     |password3        |

// In this line we define the set of data.

Ingrese la credencial de inicio de sesión

Paso 2) Ahora actualice el script Step.java.

Aquí actualizamos los métodos para pasar los parámetros, el script actualizado se muestra a continuación:

package StepDefinition;		

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("www.demo.guru99.com/v4");					
    }		

    @When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")			
    public void enter_the_Username_and_Password(String username,String password) throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys(username);					
       driver.findElement(By.name("password")).sendKeys(password);					
    }		

    @Then("^Reset the credential$")					
    public void	Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

Ingrese la credencial de inicio de sesión

Paso 3) Ahora ejecute el script actualizado.

La siguiente pantalla muestra la ejecución exitosa del script y el tiempo que tarda cada conjunto de datos.

Ingrese la credencial de inicio de sesión

Paso 4) Analizar la salida.

En la salida puedes ver lo siguiente:

El resultado siguiente se repite para la cantidad de conjuntos de datos, es decir, 3 conjuntos.

  • Navegador iniciado.
  • Se abre el sitio de demostración del banco Guru99.
  • El nombre de usuario y la contraseña se colocan en la página de inicio de sesión.
  • Restablecer los valores.

Ingrese la credencial de inicio de sesión

Conclusión

Cucumber es una herramienta BDD muy popular. Es fácil de leer y puede ser entendido por todas las partes interesadas, incluidas las personas técnicas y no técnicas.

Cucumber se puede integrar con Selenium utilizando los siguientes 3 pasos

  1. Cree un archivo de características en el que defina la característica y los escenarios paso a paso utilizando el lenguaje Gherkin.
  2. Cree el archivo Testrunner. En este archivo integramos Cucumber con marco BDD en Selenium. Ejecutamos este script.
  3. Definición de paso de creación, el script de selenio real definido en este paquete.

Leer más Lee mas