Introducción al curso

1

Cypress Avanzado: Pruebas Automatizadas con Docker y Jenkins

2

Configuración Inicial de Cypress Avanzado en Node.js

Cookies y Localstorage

3

Gestión de Cookies en Cypress: Métodos Tradicionales y Experimentales

4

Automatización de Pruebas con Local Storage y Cypress

Emulando dispositivos

5

Emulación de Dispositivos Móviles con Cypress

Instalando plugins

6

Uso de Plugins y XPath en Cypress para Automatización Web

Flaky tests

7

Evitar pruebas inestables con Cypress: uso de retries y buenas prácticas

8

Interceptación de solicitudes de red con Cypress

9

Simulación de Errores de Red con Cypress Intercept

Buenas prácticas

10

Implementación de Page Object Model en Cypress

11

Comandos Personalizados en Cypress: Alternativa al Page Object Model

12

Variables de Entorno: Uso y Configuración en Cypress

13

Configuración de Variables de Entorno en Cypress

Visual testing

14

Implementación de Visual Testing con Cypress y Plugins

Seguridad

15

Seguridad en Cypress: Navegación y Pruebas entre Dominios

16

Manipulación de pestañas en Cypress: eliminar atributo target

17

Visitar múltiples dominios y compartir datos en Cypress 10

18

Creación de plugins en Cypress para compartir datos entre tests

Data Driven Test

19

Uso de Fixtures en Pruebas Automatizadas con Cypress

BDD

20

Configuración de Cucumber y Cypress para pruebas BDD

21

Reutilización de Step Definitions en Gherkin y Cucumber

22

Pruebas Automatizadas con Gherkin: Escenarios Outline y Tags

Reportes

23

Configuración y uso de múltiples reportes con Cypress

24

Configuración de Allure con Cypress y uso de plugins

Docker

25

Uso de Docker y Cypress para Pruebas Automatizadas

Dashboard

26

Conexión y uso del Dashboard de Cypress para pruebas automatizadas

27

Alternativa gratuita al dashboard de Cypress: instalación y uso

CI/CD

28

Integración de Jenkins y Cypress para Pruebas en Paralelo

Final

29

Instalación y uso del plugin Cypress Escenario Recorder

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Cypress Avanzado

Curso de Cypress Avanzado

Javier Fuentes Mora

Javier Fuentes Mora

Integración de Jenkins y Cypress para Pruebas en Paralelo

28/29
Recursos

¿Cómo trabajar con Jenkins y Cypress?

Bienvenido a esta guía donde exploramos cómo integrar Jenkins con Cypress de manera efectiva. Este artículo está diseñado para aquellos que han tomado el curso de Jenkins o tienen experiencia previa con él. Vamos a utilizar el .war para correr Jenkins en tu terminal, aunque también podrías usar Docker si así lo prefieres. Asegúrate de detener servicios en conflicto como Cypress para evitar problemas.

¿Cómo crear una nueva tarea en Jenkins?

  • Crear una nueva tarea: Vamos a crear una tarea llamada "Platzi Cypress". Seleccionaremos "pipeline" como tipo de tarea, lo que nos permitirá definir y gestionar flujos de trabajo de manera más estructurada.
  • Configurar el pipeline script: Necesitamos limpiar el directorio, descargar el proyecto desde GitHub y hacer checkout en la rama deseada. Recuerda que si es un repositorio privado, deberás agregar credenciales para autenticarte.
node {
    stage('Checkout') {
        git url: 'https://github.com/tu-repositorio', branch: 'Jenkins'
    }
    stage('Build') {
        sh 'npm install'
    }
    stage('Test') {
        // Ejecución de pruebas con Cypress
        try {
            sh 'npm run-dashboard'
        } catch (Exception e) {
            echo 'La prueba falló, sin embargo, continuamos con el pipeline.'
        }
    }
}

¿Cómo manejar errores y optimizar el pipeline?

Es importante manejar adecuadamente los errores que puedan surgir durante la ejecución de pruebas. Por ejemplo, si una prueba falla, el código de estado regresado es 1, lo que indicará un fallo. Puedes optar por seguir la ejecución o detenerla según tu flujo de trabajo.

¿Qué hacer ante el error de conexión del puerto?

Si encuentras un error de conexión, esto podría deberse a que el puerto está ocupado o algún problema con el caché de Cypress. Algunas soluciones incluyen:

  • Detener servicios de Docker que estén en conflicto.
  • Borrar la imagen de Docker si es necesario.
  • Limpiar el caché de Cypress, revisando el archivo app.yaml que la librería instaló para alteraciones de configuración.

¿Cómo configurar y ejecutar pruebas en paralelo?

Para ejecutar pruebas en paralelo en Cypress, debes configurar el script para que se ejecute en múltiples máquinas, lo cual reducirá drásticamente el tiempo de ejecución.

node {
    stage('Checkout') {
        git url: 'https://github.com/tu-repositorio', branch: 'Jenkins'
    }
    stage('Build') {
        sh 'npm install'
    }
    stage('Test - Parallel') {
        parallel (
            machine1: {
                sh 'cypress run --record --key your-key --parallel --group machine1'
            },
            machine2: {
                sh 'cypress run --record --key your-key --parallel --group machine2'
            },
            machine3: {
                sh 'cypress run --record --key your-key --parallel --group machine3'
            }
        )
    }
}

Con esta configuración, puedes observar cómo las pruebas se ejecutarán en paralelo, reduciendo el tiempo de 25 segundos a tan solo 7, dependiendo del número de pruebas y la infraestructura disponible.

¿Qué ventajas ofrece Cypress al integrarse con Jenkins?

La integración Jenkins-Cypress permite la automatización de pruebas y la generación de informes en tiempo real, lo cual es crucial para mantener una alta calidad del software. Puedes crear slaves en Jenkins para distribuir el trabajo en múltiples máquinas, mejorando aún más la eficiencia en entornos empresariales donde las pruebas son numerosas y complejas.

Esta integración es una poderosa herramienta que agiliza procesos y asegura resultados consistentes y rápidos. Te animamos a seguir explorando y expandiendo tus conocimientos en Jenkins y Cypress para maximizar el potencial de tu flujo de trabajo de desarrollo. ¡La innovación está a tu alcance!

Aportes 1

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

es posible hacer uso de sorry-cypress en lugar de el dashboard de cypress ?