Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

Cypress — Intermedio

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • cypress

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Este curso está dirigido a profesionales de QA y desarrollo que ya dominan los fundamentos de Cypress y necesitan llevar sus suites de tests E2E a un nivel de madurez profesional. A lo largo de las 8 horas, el participante aprenderá a estructurar sus pruebas mediante patrones de diseño como Page Objects y comandos personalizados, a controlar el comportamiento de las APIs con interceptores de red, y a gestionar múltiples entornos a través de la configuración avanzada de Cypress. Asimismo, adquirirá criterio para diagnosticar y corregir tests inestables tanto en ejecución local como en modo headless, y consolidará todo ello integrando la suite en un pipeline CI/CD con reporte automático de resultados. Al finalizar, el participante será capaz de entregar una suite E2E mantenible, estable y lista para producción dentro de un flujo de integración continua real.

  1. Distinguir los patrones de organización de tests E2E —Page Objects y comandos personalizados— y seleccionar el más adecuado según la complejidad del proyecto y la repetición de flujos.
  2. Configurar cypress.config.js para gestionar variables de entorno diferenciadas entre los entornos de desarrollo y staging, garantizando la portabilidad de la suite.
  3. Diseñar interceptores de red con cy.intercept() que controlen respuestas de API y permitan validar el comportamiento de la UI ante distintos escenarios de datos y error.
  4. Evaluar el uso de fixtures estáticas frente a respuestas dinámicas interceptadas, justificando la decisión en función del tipo de test y el contexto del proyecto.
  5. Construir una suite E2E organizada con comandos personalizados que encapsulen flujos de autenticación y configuración de estado, cubriendo al menos un flujo crítico de usuario.
  6. Diagnosticar tests inestables identificando su causa raíz —condiciones de carrera, selectores frágiles o dependencias de estado— y aplicar la corrección adecuada tanto en ejecución interactiva como headless.
  7. Integrar la suite Cypress en un pipeline CI/CD con GitHub Actions o equivalente, configurando el reporte automático de resultados como parte del ciclo de entrega.

Bloque 1 — Arquitectura y patrones de organización (2 h)

Este bloque sienta las bases del diseño sostenible de suites E2E. Se analiza el patrón Page Object como mecanismo de separación entre la lógica de interacción con la UI y la lógica de test, y se estudia cuándo resulta preferible frente a un enfoque basado exclusivamente en comandos personalizados. A continuación se profundiza en Cypress.Commands.add para encapsular flujos repetitivos —especialmente los de autenticación y preparación de estado—, reduciendo la duplicación y facilitando el mantenimiento. El bloque culmina con la construcción de una suite que cubre un flujo crítico de usuario aplicando alguno de los dos patrones trabajados.

Bloque 2 — Control de red y gestión de datos de test (2 h)

El foco de este bloque es el dominio de cy.intercept() como herramienta central para desacoplar los tests de la disponibilidad real de los servicios backend. Se estudia cómo interceptar, retrasar, modificar o forzar errores en las respuestas de API y cómo formular aserciones sobre las llamadas realizadas por la UI. Paralelamente, se compara el uso de fixtures estáticas —archivos JSON predefinidos— con las respuestas dinámicas generadas en tiempo de ejecución, evaluando las ventajas de cada enfoque según el escenario: tests de regresión estables frente a pruebas exploratorias o de integración ligera.

Bloque 3 — Configuración multi-entorno y gestión de variables (1,5 h)

Este bloque aborda la configuración avanzada de cypress.config.js para que una misma suite pueda ejecutarse contra distintos entornos —desarrollo, staging, producción— sin modificar el código de los tests. Se trabaja con variables de entorno a través de archivos .env, parámetros de línea de comandos y el objeto env de Cypress, estableciendo buenas prácticas para no exponer credenciales en el repositorio y garantizar la reproducibilidad en cualquier máquina.

Bloque 4 — Diagnóstico y estabilización de tests (1,5 h)

La inestabilidad de los tests (flakiness) es uno de los problemas más costosos en una suite E2E madura. Este bloque proporciona un método sistemático para identificar la causa raíz de un test inestable: condiciones de carrera derivadas de animaciones o llamadas asíncronas, selectores frágiles acoplados a clases o posiciones del DOM, y dependencias de estado entre tests. Se aplican las correcciones pertinentes —esperas explícitas con alias, selectores semánticos con data-cy, aislamiento de estado mediante beforeEach— y se valida la solución.

Bloque 5 — Ejecución headless y depuración avanzada (1 h)

Cuando los tests fallan únicamente en CI, la única fuente de información son los artefactos generados por Cypress: logs de consola, capturas de pantalla automáticas y vídeos de ejecución. Este bloque enseña a interpretar cada uno de estos recursos de forma estructurada para localizar el punto exacto de fallo sin necesidad de reproducirlo en local, y establece una estrategia de retención y organización de artefactos coherente con el pipeline.

Bloque 6 — Integración en CI/CD (1 h)

El bloque final conecta todo lo aprendido con el flujo de entrega continua. Se configura un workflow en GitHub Actions —o equivalente— que instala dependencias, lanza la suite en modo headless, publica el reporte de resultados como artefacto del pipeline y notifica el estado al equipo. Se discuten las decisiones de diseño del pipeline: cuándo paralelizar, qué umbrales de fallo activar y cómo gestionar los artefactos de vídeo y captura en el contexto de CI.

  • Node.js 18 LTS o superior instalado en la máquina local.
  • Cypress 13.x instalado como dependencia de desarrollo en el proyecto de prácticas proporcionado.
  • Editor de código con soporte para TypeScript/JavaScript: se recomienda Visual Studio Code con la extensión oficial de Cypress.
  • Cuenta en GitHub (u otro proveedor de CI compatible) con permisos para crear repositorios y configurar Actions.
  • Acceso a internet para clonar el repositorio de prácticas, instalar dependencias npm y ejecutar los pipelines de CI durante los ejercicios.
  • Sistema operativo: macOS, Linux o Windows 10/11 con WSL2 (recomendado para ejecución headless en Windows).

Se asume que el participante ha completado el curso CYP01 — Cypress Iniciación o cuenta con experiencia equivalente demostrable. Concretamente, debe saber instalar y configurar Cypress en un proyecto existente, escribir tests básicos con los comandos fundamentales (cy.visit, cy.get, cy.click, cy.type, aserciones con .should), comprender el modelo asíncrono de Cypress y la cadena de comandos, y navegar con soltura por Cypress Studio y la interfaz del test runner interactivo. Sin estos fundamentos, el ritmo del curso resultará excesivo y los ejercicios prácticos no podrán completarse de forma autónoma.