En el último tutorial de Selenium, le presentamos Selenium Grid, que es un entorno de ejecución de pruebas distribuido para acelerar la ejecución de un pase de prueba.
Ahora, al final de esta serie completa de capacitación de Selenium, estamos aprendiendo pruebas avanzadas de Selenium y conceptos relacionados.
En este y el siguiente tutorial, le presentaremos Cucumber, un marco de desarrollo impulsado por el comportamiento (BDD) que se utiliza con Selenium para realizar pruebas de aceptación.
Cucumber Introduction
Un pepino es una herramienta basada en el marco de Behavior Driven Development (BDD) que se utiliza para escribir pruebas de aceptación para la aplicación web. Permite la automatización de la validación funcional en un formato fácilmente legible y comprensible (como inglés simple) para analistas de negocios, desarrolladores, probadores, etc.
Los archivos de características de Cucumber pueden servir como un buen documento para todos. Hay muchas otras herramientas como JBehave que también son compatibles con el marco BDD. Inicialmente, Cucumber se implementó en Ruby y luego se extendió al marco de Java. Ambas herramientas son compatibles con JUnit nativo.
El desarrollo basado en comportamiento es una extensión del desarrollo basado en pruebas y se utiliza para probar el sistema en lugar de probar el código en particular. Discutiremos más el BDD y el estilo de escribir pruebas de BDD.
Cucumber se puede usar junto con Selenium, Watir y Capybara, etc. Cucumber admite muchos otros lenguajes como Perl, PHP, Python, Net, etc. En este tutorial, nos concentraremos en Cucumber con Java como lenguaje.
Cucumber Basics
Para entender el pepino, necesitamos conocer todas las características del pepino y su uso.
# 1) Archivos de características:
Los archivos de características son la parte esencial de pepino que se utiliza para escribir pasos de automatización de pruebas o pruebas de aceptación. Esto se puede utilizar como documento en vivo. Los pasos son la especificación de la aplicación. Todos los archivos de características terminan con la extensión .feature.
Archivo de características de muestra:
Característica: Característica de funcionalidad de inicio de sesión
Para garantizar que la funcionalidad de inicio de sesión funcione,
Quiero ejecutar la prueba de pepino para verificar que está funcionando
Escenario: Funcionalidad de inicio de sesión
Un usuario dado navega a SOFTWARETETINGHELP.COM
Cuando el usuario inicia sesión con el nombre de usuario como «USUARIO ”Y la contraseña» PASSWORD «
Entonces el inicio de sesión debe ser exitoso
Escenario: Funcionalidad de inicio de sesión
El usuario dado navega a SOFTWARETETINGHELP.COM
Cuando el usuario inicia sesión con el nombre de usuario como» USER1 ”y contraseña» PASSWORD1 «
Entonces se debe mostrar un mensaje de error
# 2) Característica:
Esto brinda información sobre la funcionalidad comercial de alto nivel (consulte el ejemplo) y el propósito de la Aplicación bajo prueba. Todo el mundo debería poder comprender la intención del archivo de funciones leyendo el primer paso de funciones. Esta parte es básicamente breve.
# 3) Escenario:
Básicamente, un escenario representa una funcionalidad particular que está bajo prueba. Al ver el escenario, el usuario debería poder comprender la intención detrás del escenario y de qué se trata la prueba. Cada escenario debe seguir dado, cuándo y luego formato. Este lenguaje se llama «pepinillo».
- Dado: Como se mencionó anteriormente, dado especifica las condiciones previas. Es básicamente un estado conocido.
- Cuándo: Este es se utiliza cuando se debe realizar alguna acción. Como en el ejemplo anterior, hemos visto que cuando el usuario intenta iniciar sesión con un nombre de usuario y una contraseña, se convierte en una acción.
- Entonces: El resultado esperado o el resultado debe ser colocado aquí. Por ejemplo: verifique que el inicio de sesión sea exitoso, navegación de página exitosa.
- Fondo: siempre que sea necesario realizar algún paso en cada escenario, entonces esos pasos deben colocarse en segundo plano. Por ejemplo: si un el usuario necesita borrar la base de datos antes de cada escenario, luego esos pasos se pueden poner en segundo plano.
- Y: Y se usa para combinar dos o más del mismo tipo de acción.
Ejemplo:
Característica: Característica de funcionalidad de inicio de sesión
Escenario: Funcionalidad de inicio de sesión
Un usuario determinado navega a SOFTWARETETINGHELP.COM
Cuando el usuario inicia sesión con el nombre de usuario como «USUARIO»
Y passwo rd como «contraseña»
Entonces el inicio de sesión debería ser exitoso
Y la página de inicio debería mostrarse
Ejemplo de fondo:
Fondo:
Dado usuario que inició sesión como administrador de bases de datos
Y todos los valores basura se borran
# 4) Esquema del escenario:
Los esquemas del escenario se utilizan cuando la misma prueba debe realizarse con diferentes conjunto de datos. Tomemos el mismo ejemplo. Tenemos que probar la funcionalidad de inicio de sesión con varios conjuntos diferentes de nombre de usuario y contraseña.
Característica: Característica de funcionalidad de inicio de sesión
Para garantizar que la funcionalidad de inicio de sesión funcione, quiero ejecutar el prueba de pepino para verificar que funciona
Esquema del escenario: funcionalidad de inicio de sesión
El usuario dado navega a SOFTWARETESTINGHELP.COM
Cuando el usuario inicia sesión con el nombre de usuario como < nombre de usuario > y contraseña < contraseña >
Entonces el inicio de sesión debería ser exitoso
Ejemplos:
| nombre de usuario | contraseña |
| Tom | contraseña1 |
| Harry | contraseña2 |
| Jerry | contraseña3 |
Nota:
- Como se muestra en el ejemplo anterior, los nombres de las columnas se pasan como un parámetro a la instrucción When.
- En lugar del escenario, debe utilizar el esquema del escenario.
- Los ejemplos se utilizan para pasar diferentes argumentos en formato tabular. Los tubos verticales se utilizan para separar dos columnas diferentes. Un ejemplo puede contener muchas columnas diferentes.
# 5) Etiquetas:
Pepino, por defecto, ejecuta todos los escenarios en todos los archivos de características. En proyectos en tiempo real, podría haber cientos de archivos de características que no es necesario que se ejecuten en todo momento.
Por ejemplo: los archivos de características relacionados con la prueba de humo no necesitan ejecutarse todo el tiempo. Entonces, si menciona una etiqueta como sin humo en cada archivo de características que está relacionada con la prueba de humo y ejecuta la prueba de pepino con la etiqueta @SmokeTest. Cucumber ejecutará solo los archivos de funciones específicos de las etiquetas dadas. Siga el ejemplo siguiente. Puede especificar varias etiquetas en un archivo de características.
Ejemplo de uso de etiquetas únicas:
@SmokeTest
Característica: Característica de funcionalidad de inicio de sesión
Para asegurar que la funcionalidad de inicio de sesión funcione,
quiero ejecutar la prueba de pepino para verificar que funciona
Esquema del escenario: funcionalidad de inicio de sesión
El usuario dado navega a SOFTWARETESTINGHELP. COM
Cuando el usuario inicia sesión con el nombre de usuario como < nombre de usuario > y contraseña < contraseña >
Entonces el inicio de sesión debería ser exitoso
Ejemplo de uso de múltiples etiquetas:
Como se muestra en el siguiente ejemplo, el mismo archivo de características se puede utilizar para escenarios de prueba de humo así como para escenarios de prueba de inicio de sesión. Cuando tenga la intención de ejecutar su script para una prueba de humo, use @SmokeTest. De manera similar, cuando desee que su secuencia de comandos se ejecute para la prueba de inicio de sesión, use la etiqueta @LoginTest.
Se puede mencionar cualquier número de etiquetas para un archivo de características y para un escenario.
@SmokeTest @ LoginTest
Característica: Característica de funcionalidad de inicio de sesión
Para garantizar que la funcionalidad de inicio de sesión funcione,
quiero ejecutar la prueba de pepino para verificar que funciona
Esquema del escenario: funcionalidad de inicio de sesión
El usuario dado navega a SOFTWARETETINGHELP.COM
Cuando el usuario inicia sesión usando el nombre de usuario como < nombre de usuario > y Contraseña < contraseña >
Entonces el inicio de sesión debería ser exitoso
De manera similar, puede especificar etiquetas para ejecutar el escenario específico en un archivo de características. Por favor, consulte el siguiente ejemplo para ejecutar un escenario específico.
Característica: Característica de funcionalidad de inicio de sesión
Para garantizar que la funcionalidad de inicio de sesión funcione,
quiero ejecutar la prueba de pepino para verificar que sea trabajando
@positiveScenario
Escenario: Funcionalidad de inicio de sesión
El usuario dado navega a SOFTWARETETINGHELP.COM
Cuando el usuario inicia sesión usando el nombre de usuario como «USUARIO» y la contraseña «PASSWORD»
Entonces el inicio de sesión debería ser exitoso
@negaviveScenario
Escenario: Funcionalidad de inicio de sesión
El usuario dado navega a SOFTWARETETINGHELP.COM
Cuando el usuario inicia sesión usando el nombre de usuario como «USER1» y contraseña «PASSWORD1»
Entonces debería aparecer un mensaje de error
# 6) JUnit Runner:
Para ejecutar el archivo de características específicas, pepino usa JUnit Runner estándar y especifica etiquetas en @Cucumber . Opciones. Se pueden asignar varias etiquetas utilizando comas separadas. Aquí puede especificar la ruta del informe y el tipo de informe que desea generar.
Ejemplo de Junit Runner:
De manera similar, puede darle instrucciones al pepino para que ejecute varias etiquetas. El siguiente ejemplo ilustra cómo utilizar varias etiquetas en pepino para ejecutar diferentes escenarios.
# 7) Informe de pepino:
Cucumber genera su propio formato HTML. Sin embargo, se pueden realizar mejores informes utilizando Jenkins o la herramienta de bambú. Los detalles de los informes se tratan en el siguiente tema de pepino.
Configuración del proyecto de pepino:
La explicación detallada de la configuración del proyecto de pepino está disponible por separado en el siguiente tutorial. Consulte la parte 2 del tutorial de pepino para obtener más información sobre la configuración del proyecto. Recuerde que no se requieren instalaciones de software adicionales para pepino.
Implementación del archivo de características:
Tenemos que implementar estos pasos en Java para probar los archivos de características. Es necesario crear una clase que contenga las declaraciones dadas, cuándo y luego. Pepino usa sus anotaciones y todos los pasos están incrustados en esas anotaciones (dado, cuándo, entonces). Cada frase comienza con «^» para que pepino entienda el inicio del paso. De manera similar, cada paso termina con «$». El usuario puede usar expresiones regulares para pasar diferentes datos de prueba. Las expresiones regulares toman datos de los pasos de características y pasan a las definiciones de los pasos.El orden de los parámetros depende de cómo se pasen desde el archivo de características. Consulte el siguiente tutorial para la configuración del proyecto y el mapeo entre archivos de características y clases de Java.
Ejemplo:
El siguiente ejemplo es para ilustrar cómo se pueden implementar los archivos de características.
En este ejemplo, no hemos utilizado ninguna API de selenio. Esto es solo para mostrar cómo funciona el pepino como un marco independiente. Siga el siguiente tutorial para la integración de selenio con pepino.
Cuando ejecute la clase cucumber runner, cucumber comenzará a leer los pasos del archivo de funciones. Por ejemplo, cuando ejecuta @smokeTest, pepino leerá Paso de característica y Dada una declaración de escenario. Tan pronto como pepino encuentre la declaración, se buscará la misma declaración dada para sus archivos java. Si se encuentra el mismo paso en el archivo java, entonces pepino ejecuta la función especificada para el mismo paso; de lo contrario, pepino se saltará el paso.
Conclusión
En este tutorial, hemos cubierto las características de pepino y su uso en un escenario en tiempo real.
El pepino es la herramienta favorita de muchos proyectos, ya que es fácil de entender, legible y contiene funciones comerciales.
En el próximo capítulo, cubriremos cómo configurar un proyecto cucumber – java y cómo integrar Selenium WebDriver con Cucumber.
Última actualización: 18 de enero de 2021 6:40 am