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