¿Cómo diseñarías un framework de automatización con Selenium (Java) que sea mantenible?
Respuesta
- Stack: Java, JUnit 5 (o TestNG), Selenium WebDriver, Maven, AssertJ, informes (Allure).
- Estructura: Page Object Model; clases pequeñas de componentes para widgets compartidos; los tests solo describen pasos de usuario.
- Estabilidad: locators estables (
data-testid), solo explicit waits, nada de Thread.sleep, reintentos solo para ruido conocido de infraestructura. - Datos: crea los datos de test por la API o la base de datos antes del test; tests independientes que puedan correr en cualquier orden y en paralelo.
- Ejecución: Chrome headless en CI (GitHub Actions/Jenkins), Selenium Grid o Docker para ejecuciones en paralelo y entre navegadores; capturas y logs al fallar.
- Alcance: pocos flujos E2E para recorridos críticos; el resto en unit tests y tests de API.
Practica esta pregunta en Repaso