Trabajar con el framework BDD de Serenity: una visión general

Última actualización el 16 de agosto de 2020: Guy Arieli, CTO de Calidad

 

Descripción general del marco BDD de Serenity

Serenity es una biblioteca de informes de código abierto que permite a los desarrolladores escribir criterios de aceptación mejor estructurados y fáciles de entender para proyectos de automatización de pruebasAdemás de generar informes detallados para cada prueba, la herramienta también muestra la lista de funcionalidades probadas en cada caso. Con los detalles de las pruebas ejecutadas y los requisitos evaluados, Serenity BDD Framework permite comprender mejor el funcionamiento y las funcionalidades de una aplicación.

Lo mejor del framework BDD de Serenity es que admite múltiples soluciones de pruebas de aceptación automatizadas. Puedes usarlo con JUnit para escribir rápidamente criterios de aceptación claros y fáciles de mantener, o integrarlo con WebDriver para probar aplicaciones web en Selenium. También es compatible con RestAssured para probar API REST. Serenity te permite usar cualquier herramienta de Desarrollo Guiado por Comportamiento (BDD), como Cucumber. Además, puedes usar cualquier herramienta de gestión de casos de prueba, como Jira, o bien optar por un enfoque basado en directorios.

¿Qué es el trastorno dismórfico corporal (TDC)?

BDD significa Desarrollo Guiado por el Comportamiento. De hecho, ha evolucionado a partir de Desarrollo impulsado por pruebas El Desarrollo Guiado por Pruebas (TDD) se centra en escribir los casos de prueba antes de escribir el código. El Desarrollo Guiado por Competencias (BDD) adopta un enfoque similar, pero se enfoca en el comportamiento del sistema y del usuario. En un entorno BDD, las pruebas se escriben en un lenguaje común para que todos los interesados ​​(técnicos y no técnicos) comprendan el funcionamiento de la aplicación. Esto también facilita una buena colaboración entre los diferentes equipos. La capacidad de escribir casos de prueba en un lenguaje común como el inglés ofrece una gran ventaja a los desarrolladores al preparar los criterios de aceptación. Además, permite escribir casos de prueba que describan escenarios en tiempo real.

Historia y conceptos principales del BDD

Fue Daniel Terhorst-North quien impulsó el desarrollo de la metodología BDD en 2003. Liz Keogh contribuyó al concepto en 2004 junto con Chris Matts y desarrolló la plantilla «Dado / Cuando / Entonces» para capturar historias de usuario y convertirlas en un formato ejecutable. Este concepto se inspiró en el «Diseño Guiado por el Dominio» de Eric Evans. Otra fuente de inspiración fue la plantilla de historia de usuario «Como / Yo / Entonces que», creada por Rachel Davies. En 2005, Dave Astels, David Chelimsky, Steven Baker y Aslak Hellesoy fundaron el Proyecto RSpec, que daba soporte a BDD en Ruby. Mientras mejoraba este proyecto, Aslak creó una versión mejorada de RSpec Story Runner, a la que llamó Cucumber.

En un enfoque BDD, los requisitos se convierten en historias de usuario y escenarios de usuario válidos.

Un ejemplo de plantilla BDD es

  • Dado que los
  • Al
  • Entonces

Otro ejemplo es

  • Como (cliente premium)
  • Quiero (echar un vistazo a las novedades en el segmento de accesorios de moda)
  • Para poder pedir la mejor ropa.

BDD tiene una curva de aprendizaje mínima.wing to El uso de un lenguaje común facilita la colaboración fluida entre diferentes equipos. Aquí, se define el comportamiento, no la prueba. Por lo tanto, los criterios de aceptación se definen antes de desarrollar el código, lo cual beneficia a los responsables del negocio, ya que obtienen una comprensión clara del funcionamiento de la aplicación en lugar de centrarse en las funcionalidades.

Cucumber y Serenity son dos frameworks BDD populares.

Primeros pasos con el marco de trabajo BDD de Serenity

Estos componentes ejecutan el framework Serenity BDD. Todos son necesarios.

  1. Java
  2. IDE IntelliJ
  3. Gradle
  4. Plugin Serenity BDD

Paso 1: Instalar Java

Para descargar Java, visite el siguiente enlace:

https://www.oracle.com/in/java/technologies/javase-downloads.html

Descarga el Kit de Desarrollo de Java (JDK)

Serenity BDD Framework Java JDK

Java SE 14.0.2 es la última versión para la plataforma Java Standard Edition. Acepte el acuerdo de licencia y proceda con la descarga.

Serenity BDD Framework aceptar

Una vez descargado el software, haga doble clic en la aplicación e instale Java.

Instalación de Java con Serenity BDD Framework

Elige la carpeta de destino y haz clic en siguiente.

Kit de desarrollo Java Serenity BDD Framework

El paquete de instalación instala Java en su equipo. Haga clic en Cerrar para finalizar la instalación.

Marco de trabajo BDD de Serenity cerrado

Para comprobar si la instalación de Java se realizó correctamente, abra el símbolo del sistema y escriba el comando version.

  • java -version

Versión de Java del framework Serenity BDD

Paso 2: Configure las variables de entorno

Para usar Java, debes configurar las variables de entorno. Agrega la ruta de Java en la configuración de variables del sistema y de usuario. Para ello,

  • Haz clic en Sistema -> Configuración avanzada del sistema -> Avanzado -> Variables de entorno

Comprueba si la ruta de Java está añadida en las variables del sistema y en la ruta de las variables de usuario.

Comprueba si la ruta de Java está añadida a las variables del sistema.

Java ya está listo para su uso.

Paso 3: Instalar el IDE

Para escribir y ejecutar pruebas con Serenity BDD Framework, necesitas un IDE moderno. Puedes elegir entre IntelliJ o Eclipse. Para instalar IntelliJ, visita el siguiente sitio web.

https://www.jetbrains.com/idea/

Marco de trabajo BDD de Serenity de IntelliJ IDEA

Haz clic en el botón Descargar para descargar la herramienta. IntelliJ se ofrece en dos versiones: Ultimate, con una prueba gratuita de 30 días, y la versión Community, que es gratuita y de código abierto. Elige la versión Community para realizar la prueba.

Marco de trabajo BDD de Serenity de IntelliJ IDEA

Ahora, haga doble clic en el software IntelliJ para iniciar el procedimiento de instalación.

Instalación de IntelliJ

Haz clic en Siguiente y elige la ubicación de instalación.

IntelliJ Idea

La siguiente pantalla le solicita que personalice las opciones de instalación.

Instalación de IntelliJ

Puedes crear un acceso directo en el escritorio o actualizar el menú contextual. La función más importante a tener en cuenta es la opción «Actualizar variable PATH». Al seleccionarla, se configurarán automáticamente las variables de entorno. Esto significa que no tendrás que añadir manualmente la ruta de IntelliJ a las variables del sistema ni a las de usuario.

En la siguiente pantalla, seleccione la opción del menú de inicio y haga clic en Siguiente para continuar con la instalación.

IntelliJ Idea

Una vez finalizada la instalación, le pedirá que reinicie el sistema. También puede reiniciarlo manualmente más tarde.

Finalización de IntelliJ

Tras reiniciar el sistema, abre el IDE de IntelliJ. La primera vez que lo abras, te pedirá que aceptes la política de privacidad.

Política de privacidad de IntelliJ

En la siguiente pantalla, elige tu preferencia para compartir datos.

Compartir datos de IntelliJ

Ahora se abre el IDE.

Marco de trabajo BDD de IntelliJ Serenity

Ya está listo para usar. Puedes elegir la versión de interfaz de usuario Drácula (en modo oscuro) o Clara (en modo claro).

Personalización de IntelliJ

Ahora, la herramienta está lista. Puede elegir un proyecto nuevo o abrir uno existente.

IntelliJ Open

Paso 4: Instalar Gradle

Para ejecutar pruebas y generar informes, debes añadir una herramienta de compilación como Maven o Gradle. Puedes descargar Maven aquí:

https://maven.apache.org/download.cgi

Para Gradle, visita este enlace:

https://gradle.org/next-steps/?version=6.5.1&format=all

Crea una carpeta llamada Gradle en la unidad C y descomprime el paquete Gradle en esa carpeta.

Paso 5: Configurar la variable de entorno

Para usar Gradle, debes configurar las variables de entorno. Sigue los pasos del paso 2 para abrir la configuración de Variables de entorno. Agrega la siguiente ruta en Variables del sistema.

  • C:\Gradle\gradle-6.5.1\bin

Para comprobar si Gradle está configurado correctamente, abra una ventana de símbolo del sistema y escriba el comando version.

  • Gradle -versión

Marco de trabajo BDD de Serenity Gradle

Por lo tanto, Gradle funciona correctamente.

Paso 6: Agregar el plugin Serenity BDD

Para ejecutar tus pruebas con Serenity BDD Framework, debes añadir el plugin de Serenity. Para ello, abre el IDE de IntelliJ.

IntelliJ nuevo

Haz clic en Nuevo proyecto. En el menú de la izquierda, elige Gradle.

Marco de trabajo BDD de Gradle Serenity

Elija un nombre y la ubicación de la carpeta de compilación y haga clic en Finalizar.

final de graduación

La herramienta descargará los archivos necesarios y creará un nuevo proyecto Gradle.

Descarga de Gradle

Una vez finalizada la compilación, se mostrará un mensaje indicando que la compilación se ha realizado correctamente.

éxito de Gradle

Agregar el plugin Serenity BDD

Para aplicar el plugin Serenity BDD Framework al proyecto, abra el archivo build.gradle y edítelo con el siguiente código.

[javascript] aplicar plugin: 'java' aplicar plugin: 'net.serenity-bdd.aggregator' repositorios { mavenLocal() jcenter() } script de compilación { proyecto.ext { serenityVersion = '2.2.12' } repositorios { mavenLocal() jcenter() } dependencias { classpath('net.serenity-bdd:serenity-gradle-plugin:' + serenityVersion) } } dependencias { testCompile 'junit:junit:4.12' testCompile 'net.serenity-bdd:serenity-core:' + serenityVersion testCompile 'net.serenity-bdd:serenity-junit:' + serenityVersion testCompile 'org.assertj:assertj-core:3.4+' testCompile 'org.slf4j:slf4j-simple:1.7+' } gradle.startParameter.continueOnFailure = verdadero [/javascript]

Marco de trabajo BDD de Serenity

Ten en cuenta que el código menciona serenityVersion. La última versión es la 2.2.12. Al ejecutar el código, se instalará el plugin Serenity versión 2.2.12.

Marco de trabajo BDD de Serenity

Junto con el plugin Serenity Gradle, se instalarán todas las dependencias. En este ejemplo, se añade la biblioteca de pruebas JUnit. También puedes elegir cualquier otra biblioteca de pruebas y añadirla como dependencia.

Marco de trabajo BDD de Serenity

Ahora, abre la ventana del símbolo del sistema y escribe el siguiente comando.

  • Agregado de pruebas de Gradle

Marco de trabajo BDD de Serenity

La compilación se realizó correctamente. Los informes de prueba se encuentran en la carpeta raíz: C:\Experitest\Serenity\targetsite\serenity. Al abrir el archivo index.html, puede consultar los informes de prueba generados por Serenity BDD Framework. Gracias a la implementación de continueOnFailure, las pruebas continuarán incluso si algunas fallan.

Marco de trabajo BDD de Serenity

Realizando tu primera prueba

Aquí tienes una prueba de ejemplo utilizando un sitio de demostración http://decohere.herokuapp.comEste proyecto autentica la tarea de inicio de sesión del usuario y comprueba si el usuario puede iniciar sesión y navegar a la página de bienvenida.

Abre tu proyecto ExperitestSerenity en el IDE de IntelliJ.

Abrir IntelliJ

Aquí tenéis una lista de los paquetes y clases creados para el proyecto.

CuandoAutenticando.java

Esta es la clase principal que verifica si el usuario está en la página de inicio, inicia sesión en la cuenta como administrador y navega correctamente a la página de bienvenida.

[javascript] package ExperitestTC1.features.authentication; import ExperitestTC1.steps.DecohereUser; import net.serenitybdd.junit.runners.SerenityRunner; import net.thucydides.core.annotations.Managed; import net.thucydides.core.annotations.Steps; import org.junit.Test; import org.junit.runner.RunWith; import org.openqa.selenium.WebDriver; @RunWith(SerenityRunner.class) public class WhenAuthenticating { @Steps private DecohereUser user; @Managed(driver = “chrome”) WebDriver browser; @Test public void shouldBeAbleToLoginAsAdmin() { user.isOnTheHomePage(); user.logsInAsAdmin(); user.shouldBeOnLandingPage(); } } [/javascript]

DecohereUser.java

Esta clase proporciona los detalles de la página de inicio de la clase principal.

[javascript] package ExperitestTC1.steps; import ExperitestTC1.ui.DecohereHomePage; import ExperitestTC1.ui.LandingPage; import net.thucydides.core.annotations.Step; import static org.assertj.core.api.Assertions.assertThat; public class DecohereUser { private DecohereHomePage decohereHomePage; private LandingPage landingPage; @Step public void isOnTheHomePage() { decohereHomePage.open(); } @Step public void logsInAsAdmin() { decohereHomePage.loginAsAdmin(); } @Step public void shouldBeOnLandingPage() { assertThat(landingPage.noticeMessage()).isEqualTo(“You are now logged in as admin@decohere.com.”); } } [/javascript]

DecohereHomePage.java

Esta clase proporciona el nombre de usuario y la contraseña para iniciar sesión en el sitio.

[javascript] package ExperitestTC1.ui; import net.serenitybdd.core.pages.PageObject; import net.thucydides.core.annotations.DefaultUrl; @DefaultUrl(“https://decohere.herokuapp.com/”) public class DecohereHomePage extends PageObject { public void loginAsAdmin() { $(“#openLogin”).click(); $(“#username”).sendKeys(“admin@decohere.com”); $(“#password”).sendKeys(“admin”); $(“#login”).click(); } } [/javascript]

Página de destino.java

Esta clase muestra el mensaje de la página de bienvenida.

[javascript] package ExperitestTC1.ui; import net.serenitybdd.core.pages.PageObject; public class LandingPage extends PageObject { public String noticeMessage() { return $(“.notice”).getText(); } } [/javascript]

Al ejecutar la prueba en IntelliJ IDE, se abrirá la página principal de Decohere y se iniciará sesión en la cuenta. Serenity BDD generará un informe con los detalles de la prueba.

Resultados del marco de trabajo Serenity BDD

Resumen

La práctica biblioteca de informes del framework Serenity BDD permite ejecutar pruebas de aceptación mejor estructuradas y más fáciles de comprender. Gracias a los informes generados para cada acción en cada paso, los desarrolladores pueden entender el funcionamiento de cada funcionalidad e identificar errores rápidamente. Las bibliotecas de pasos de Serenity permiten anotar métodos con la anotación `@Step` para orquestar llamadas a diferentes capas, como bases de datos, servicios web y objetos de página. En definitiva, el framework Serenity BDD es una excelente opción para las pruebas de aceptación.

Continuous Testing Se trata de derribar barreras. Vea cuán importante es. Pruebas continuas en la nube Este video del seminario web se mantiene vigente en 2021. 

También puede interesarle