Version curso.2022

Breve introducción a los tests de aceptación de aplicaciones web con Selenium.
Objetivos
  • Comenzar a crear tests de aceptación de aplicaciones web con Selenium IDE.

  • Crear y desplegar una plantilla de aplicación web que implemente un Login y Registro de usuario.

  • Exportar los test de Selenium IDE a Selenium Webdriver y ejecutar en Eclipse con distintos navegadores web (cross-browser testing).

  • Ejecutar los test de Selenium en Jenkins utilizando el navegador en modo headless.

1. Introducción a Selenium

Selenium es un conjunto de herramientas para llevar a cabo pruebas automatizadas de aplicaciones web.

Selenium consta de varias herramientas.

  • Selenium IDE es una extensión para Firefox y para Chrome que registra nuestra actividad en el navegador durante un período determinado; esta actividad se traduce en una serie de comandos que podremos repetir cuantas veces queramos. Cuando sea conveniente, incluiremos aserciones para realizar comprobaciones de que lo que se muestra en la web es realmente lo esperado. Con Selenium IDE podemos grabar casos de prueba o test cases, y agruparlos en juegos de prueba o test suites. Selenium IDE permite exportar los test cases en forma de scripts en muy diversos lenguajes, como Python, Ruby, Java (JUnit), C#, NodeJS (JavaScript), y algunos más, para ser usados en los entornos de prueba habituales usando el siguiente componente de Selenium, llamado Selenium WebDriver.

  • Selenium WebDriver, implementa una API cliente lista para ser usada con tu entorno de testing favorito, que se ejecutará sobre un servidor que gestiona los principales navegadores que tengas instalados para realizar en ellos las pruebas. Es decir, podrás ejecutar las pruebas automáticamente desde tu IDE favorito, por ejemplo Eclipse, en todos los navegadores relevantes, de forma que no se te escape ningún detalle de tu aplicación. Para ello, necesitarás descargar del driver del navegador sobre el que quieres ejecutar las pruebas (además de, por supuesto, tener instalado dicho navegador en tu sistema).

  • Un tercer componentes es Selenium Grid, que permite ejecutar varias instancias del WebDriver de forma paralela, en distintas máquinas con distintas plataformas o sistemas operativos, gestionándolas centralizadamente, lo que acelerará drásticamente los tiempos de prueba.

2. Selenium IDE

Instala en tu equipo Selenium IDE en Firefox o Chrome. Tras ello, aparecerá el icono en tu navegador.

selenium ide icon
Figura 1. Icono de Selenium IDE en el navegador

Al hacer clic sobre el icono, se abrirá Selenium IDE. Empieza por crear un nuevo proyecto:

selenium ide open 1
Figura 2. Selenium IDE inicio

Escribe un nombre al nuevo proyecto de pruebas:

selenium ide open new project
Figura 3. Selenium IDE inicio

Introduce la URL base a probar:

selenium ide open url base
Figura 4. Selenium IDE URL base

Directamente empieza a grabar las acciones que vayas realizando sobre el navegador:

selenium ide start recording
Figura 5. Selenium IDE grabando

Durante tu interacción con la web que estés probando SIEMPRE es necesario ir añadiendo asserts o verificaciones para comprobar que lo que muestra la aplicación corresponde con lo esperado. Para ello utiliza el menú contextual para añadir verificaciones y/o asserts.

selenium ide assert text
Figura 6. Selenium IDE assert text

En la ventana de Selenium IDE, puedes ver que se van grabando en los comandos de Selenium los pasos realizados sobre el navegador (clics, entradas de texto, asserts, etc).

selenium ide saved steps
Figura 7. Selenium IDE pasos guardados

Finaliza la grabación del test en el botón de detener, y dale un nombre al test case creado:

selenium ide stop test name
Figura 8. Selenium IDE guardar test case

A continuación, dale al play para volver a ejecutar el test:

selenium ide play test
Figura 9. Selenium IDE detener grabación

Siguiendo estos sencillos pasos, puedes grabar tantos casos de prueba como sean necesarios para ejercitar tu aplicación web y verificar que todos escenarios de los casos de uso funcionan correctamente.

Recuerda que es necesario crear casos de prueba para:

  • Los escenarios correctos, en los que la aplicación realiza el caso de uso correctamente, tal y como se espera.

  • Los escenarios de error o incorrectos, donde el funcionamiento del caso de uso no es el caso correcto, bien porque los datos introducidos no son adecuados, o faltan, o por cualquier otro motivo. La aplicación en ese caso debería mostrar un mensaje de error de algún tipo y comportarse de manera estable, es decir, que se queda en un estado aceptable y "no peta" en esos escenarios incorrectos.

Puedes organizar los tests en test suites.

Por último, guarda los test en un archivo .side, que está basado en formato JSON.