Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Proyecto de integración de Selenium con Spring
Descripción:
Este proyecto es un ejemplo sencillo que muestra cómo integrar pruebas de extremo a extremo con Selenium dentro de una aplicación Spring Boot.
La aplicación es una pequeña página web con dos rutas principales: la página de inicio (`/`) y un formulario de registro (`/register`) implementadas con controladores Spring y plantillas Thymeleaf.
¿Cómo integra Selenium con Spring en este proyecto?
1) Arranque de la aplicación durante las pruebas
- Las pruebas E2E usan `@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)` para arrancar la aplicación Spring Boot en un puerto aleatorio durante la ejecución de los tests.
- `@LocalServerPort` inyecta el puerto asignado en las pruebas para construir la URL `http://localhost:{port}` que Selenium visita.
2) Tests que usan Selenium WebDriver
- Los tests E2E se encuentran en `src/test/java/com/practice/selenium/e2e` y usan `ChromeDriver` (con `ChromeOptions`) como `WebDriver`.
- Ejemplos de tests:
- `HomeE2ETest`: abre la ruta `/` y verifica que el elemento con id `titulo` contiene el texto esperado.
- `RegisterE2ETest`: abre la ruta `/register`, completa el formulario (inputs, select, radios, checkboxes, textarea), envía el formulario y espera el mensaje de éxito.
3) Cómo se comunican pruebas y aplicación
- Las pruebas lanzan un servidor real de Spring Boot (no mocks HTTP). Selenium se conecta a ese servidor mediante HTTP local y simula la interacción del usuario contra las páginas Thymeleaf.
4) Componentes relevantes en el código
- `src/main/java/com/practice/selenium/SeleniumApplication.java`: clase principal Spring Boot.
- `src/main/java/com/practice/selenium/controller/PageController.java`: mapea `/` y añade el atributo `mensaje` al modelo.
- `src/main/java/com/practice/selenium/controller/RegisterController.java`: mapea `/register` para mostrar y procesar el formulario.
- `src/main/resources/templates/home.html` y `register.html`: plantillas Thymeleaf que renderizan la UI que Selenium interactúa.
- `src/test/java/com/practice/selenium/e2e/*`: pruebas E2E que controlan el navegador y validan comportamiento.
5) Requisitos para ejecutar las pruebas E2E
- Tener un navegador Chrome y el `ChromeDriver` compatible instalado y accesible en el `PATH`, o configurar el driver correspondiente.
- Las pruebas usan `ChromeOptions` con modo headless en los ejemplos para ejecución automatizada.
6) Cómo ejecutar (resumen)
- Ejecutar con Maven desde la raíz del proyecto (asegurar `ChromeDriver` disponible):
- `./mvnw test` (Linux/macOS) o `mvnw.cmd test` (Windows).
Notas finales:
Este proyecto es una plantilla clara para entender cómo arrancar una aplicación Spring Boot dentro del ciclo de pruebas y cómo usar Selenium WebDriver para ejecutar pruebas de integración que interactúan con la aplicación en tiempo de ejecución.