Hoy quiero compartirles mi experiencia con Cypress, cómo lo descubrí y cómo llegué a trabajar casi un año haciendo testing automatizado.
Como desarrolladores al escuchar que tenemos que hacer tests ya nos empezamos a remover un poco en la silla pensando en lo largo y aburrido que se puede hacer. Ya sea tener que crearlos desde 0 o el simple hecho de arreglarlos porque cambiamos todo un componente y ahora rompemos todo.
Por lo menos esto es lo que yo pensaba.
Acérquense que les voy a contar una historia…
Mi primer encuentro con Cypress fue en 2021, en circunstancias poco ideales. Me tocó aprenderlo rápidamente, sin experiencia previa, en un proyecto con archivos enormes y un plazo ajustado para crear 12 tests extensos. Digamos que este no fue el comienzo de una historia de amor 🤣 y que, por suerte para mi, fue extremadamente corta.
Avanzamos rápidamente hasta 2022.
Nuevo proyecto, viejos amigos.
Tuve la suerte de empezar a trabajar con un amigo en la implementación de testing automático con Cypress. Pensé que sería una gran oportunidad para aprender de alguien que tiene mucha experiencia y encima voy a poder aprender Cypress a un ritmo más tranquilo. Sin embargo, como suele suceder, las cosas no siempre salen como uno espera, y mi amigo renunció al mes.
Pero como no todo es lágrimas y tragedia, aprendí mucho en este proceso, y quiero compartirlo con ustedes.
Primero, ¿qué es Cypress?
Cypress es una herramienta de prueba automatizada de código abierto que permite a desarrolladores y testers simular la interacción del usuario con una aplicación web en un navegador.
Algunas de sus características principales son:
Ejecución en tiempo real: muestra los resultados de las pruebas de forma inmediata.
Facilidad de uso: incluso para aquellos sin experiencia en pruebas automatizadas.
Integración con otros frameworks: compatible con una variedad de tecnologías.
Facilidad de depuración: proporciona herramientas para depurar de manera rápida y eficiente.
Para obtener más información, pueden visitar su sitio web: Cypress.io
Facilidad de creación de comandos:
Cypress simplifica la interacción con elementos de la interfaz de usuario mediante sus comandos, que son similares a las promesas pero más accesibles. Además, permite crear comandos personalizados para automatizar tareas repetitivas, ya sea para encontrar un elemento dentro del DOM o la creación de productos en un e-commerce.
Objetivos claros (testing UI vs testing logic/functionality):
Es crucial definir qué aspectos de la aplicación se van a testear. En nuestro caso, nos centramos en pruebas de interfaz de usuario para reducir el tiempo dedicado a pruebas manuales y garantizar que los nuevos componentes no rompieran la aplicación.
Tests claros dev contentos (readability):
Como mencioné al principio, no soy QA y el hecho de encontrarme con archivos testamento que eran ilegibles me traumó un poco y, entre otros comentarios, no hay nada mejor para un desarrollador que entender qué y dónde tiene que modificar cuando los tests fallan.
COMENTEN SUS TESTS, háganlos legibles y lo más simple posible, y todos felices y contentos. De esta forma evitamos tener malos entendidos cuando tengamos que modificarlos.
Capturas de pantalla y videos:
Cypress ofrece la opción de tomar capturas de pantalla y grabar videos de las pruebas, lo cual resulta invaluable para identificar y solucionar problemas. Estas funcionalidades pueden configurarse tanto para ejecuciones locales como en la nube, lo que facilita la detección de errores en diferentes entornos.
Plugins FTW:
Cypress cuenta con una amplia variedad de plugins, tanto oficiales como de la comunidad, que amplían su funcionalidad.
En particular, encontramos útiles los plugins @cypress/grep para filtrar pruebas por etiquetas y Percy para pruebas visuales.
En resumen, mi experiencia con Cypress hasta el momento, ha sido una montaña rusa emocional, que me ha enseñado mucho sobre testing automatizado y pensar un flujo de uso desde la perspectiva del usuario.
¡Hasta la próxima!
BeerJS Cba 77 - ¿Por qué sufrir con testing?
Conoce a tu mejor aliado, Cypress




Top comments (0)