Cypress meets Flowics
Testing end-to-end automatizado
Simula la operatoria de un usuario y la documenta
¿Cuál es la finalidad?
- Realizar pruebas de todo el stack de la aplicación.
- Documentar el proceso de acciones que realiza un usuario para completar una tarea.
- Facilitar la generación de vídeos documentales sobre cada feature.
- Simplificar el proceso de desarrollo al permitir feedback inmediato con la ejecución automática de los tests.
- Reducir problemas por regresión al refactorizar algún componente.
Diferencias con Selenium
- Selenium corre en un servidor y se comunica con el browser a través de la api WebDriver. Cypress corre en el mismo loop de la aplicación.
- Selenium está orientado a eventos asincrónicos. Cypress es sincrónico entre comandos (interfaz chainable).
- Cypress tiene una UI de testing mucho más rica. Selenium ofrece la posibilidad de instalar un plugin como asistente.
Diferencias con Selenium
Dificultades
- Identificar qué es lo que se quiere testear.
- Asegurarse que los tests creados son lo más resilientes posibles.
- No testear demasiado.
- Organizar los tests para que puedan ser ejecutados en paralelo.
- Configurar los componentes para que utilicen la prop `data-cy` de forma apropiada: se tienen que modificar componentes de flui y algunos no son muy amigables.
Beneficios
- Fuerza a probar cosas que antes no se hacían: ej, probar las mismas vistas u operaciones con usuarios de distinto rol.
- Atrapa regresiones antes de que se publique en producción.
- Asegura un buen porcentaje de cobertura de código con pocos tests.
- Permite identificar cuellos de botella en la comunicación con el servidor como también estructuras HTML complicadas.
Cypress meets Flowics
By Luciano Graziani
Cypress meets Flowics
Cypress intro for Flowics
- 280