Pruebas Automatizadas con Spock y Geb


En esta entrada vamos a ver dos herramientas muy interesantes para implementar en nuestro framework de Pruebas Automatizadas.  Spock y Geb nos van a permitir la creación de un framework a medida tomando grandes atajos que nos dejan en un punto medio en cuanto a crear un framework o utilizar un framework existente.

Si te interesa saber más de Spock/Geb en Patreon podes encontrar una guía paso a paso para crear un framework de pruebas automatizadas con estas herramientas.

Spock Framework

Spock es un framework de tests basado en Groovy que podemos utilizar para testear tanto aplicaciones Java como Groovy. Con Spock podemos escribir tests muy expresivos, fáciles de leer y mantener. Todo ello es posible por dos motivos principalmente: el magnífico DSL que proporciona Spock y la potencia de Groovy, lenguaje con el que escribimos los tests. Proporciona un runner de JUnit por lo que es compatible con cualquier herramienta, IDE y servidor de integración continua que utilicemos actualmente con JUnit.

El nombre de cada test se escribe como una cadena de texto entre comillas, de esta forma podemos escribir nombres de tests muy descriptivos y que realmente expresan el motivo del test. En lugar de  llamar el test testElUsuarioPuedeLoguearse podemos llamar al test "el usuario #Usuario.nombre puede debería loguearse en forma satisfactoria" donde reemplazara el valor de #Usuario.nombre por el valor del mismo durante el test.

No solo nos permite nombres de tests mas claros y dinámicos, todos los tests de Spock utilizan el lenguaje Gherkingivenwhenthen los que nos proporciona la posibilidad de aplicar BDD de una forma distinta a Cucumber (no necesitamos features y steps), ya que cada step va acompañado por el código necesario para cumplirlo.

Geb

Geb surgió de la necesidad de hacer que la automatización de la interfaz de usuario sea menos complicada, sin problemas y más eficiente. Se puede utilizar para programar, extraer datos de la web y automatizar pruebas funcionales UI.

Para que sirve?

Geb nos facilita todo el modelado de nuestra aplicación bajo pruebas y más. La creación de Page Objects y módulos es muy simple, así como también la creación de locators, manejo de Race Conditions (esperando por los elementos de manera inteligente) y soporte para distintos browsers. Básicamente nos da un atajo en la creación de nuestro framework para poder avanzar con el mismo de una manera mucho mas rápida ya que tenemos gran parte del framework resuelto, pero dándonos la libertad que necesitamos para que nuestro framework sea a medida de nuestra aplicación y necesidades.

Lo mejor de  Geb:

  • Combina las características de los lenguajes de programación Groovy y jQuery.
  • Soporte para WebDriver sin necesidad de configuración extra.
  • Page Object aplicado de una forma simple.
  • Proporciona inspección de contenido, selección e interacción de contenido  de una forma sólida, robusta y dinámica.
  • Soporte Crossbrowsing.

Si te interesa saber más de Spock/Geb para pruebas automatizadas, en Patreon podes encontrar una guía paso a paso para crear un framework con estas herramientas.

Contribute with the Blog

Anuncios

2 Comentarios Agrega el tuyo

  1. arquillos dice:

    Muchas gracias por el post. Es muy interesante y divertido.
    Para el mundo del testing automático solo es una alocada idea mas que no llegara a nada. Además de tener que programar el robot para que realice los tests, introducimos nuevos niveles de incertidumbre y gestión al tener que disponer de dispositivos físicos para realizar las pruebas (lo cuál es lo preferible para realizar los tests, pero muchas veces hay que conformarse con simuladores), mantenimiento del robot (piezas, calibrado…), PRUEBAS del propio robot para verificar su funcionamiento….
    Como te comento, muy chulo y a lo mejor me monto uno en casa!!! Pero solo vale de hobbie.

    Muchas gracias y sigue con el gran trabajo del blog!!.

    Me gusta

    1. Gracias por el comentario Juan, entiendo que te referis a la entrada sobre Tapster y no a esta sobre Spock+Geb. La entrada sobre tapster es esta: https://josepablosarco.wordpress.com/2018/07/09/tapster-robot-test-automation/

      Estoy de acuerdo en parte con tu comentario, porque creo que si es costoso y requiere de dedicación pero no muy de acuerdo en que no va a quedar en nada, ya que es una herramienta existente en muchas ramas de la industria automotriz y que a cambio de los cientos de miles que cuestan las opciones actuales, Tapster viene a reducir el costo y hacer posible este tipo de robotica en otros ambientes de trabajo en una forma mas básica y estadarizada.

      Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.