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

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

3/29
Recursos

¿Cómo configurar y utilizar cookies en tus pruebas?

Las cookies juegan un papel crucial en el funcionamiento de aplicaciones web, permitiendo personalizar, almacenar y gestionar información de usuario entre sesiones. En esta guía, exploraremos cómo trabajar con cookies en tus pruebas automatizadas utilizando Cypress.

¿Por qué configurar una URL base?

Antes de comenzar a manipular cookies, es esencial preparar el entorno de pruebas. Considere lo siguiente:

  • Configura la URL base: Esto proporciona un punto de partida común para todas las pruebas. En nuestro ejemplo, se usó un sitio web liviano de Pokedex como base.
  • Crear un archivo de prueba: Asegúrate de organizar tus pruebas en una estructura coherente, como end-to-end, para facilitar su gestión.
cy.describe('cookies', () => {
  cy.it('debería obtener las cookies', () => {
    cy.visit('/');
    cy.getCookies().should('be.empty');
  });
});

¿Cómo agregar y verificar cookies?

Agregar cookies es bastante sencillo con Cypress. Puedes definir una cookie y verificar su existencia con facilidad:

  1. Establecer una cookie: Usa cy.setCookie().
  2. Verificar la cookie: Utiliza cy.getCookies() para validar su existencia.
cy.it('debería agregar y verificar una cookie', () => {
  cy.setCookie('nombre', 'Javier');
  cy.getCookies().should('have.length', 1);
});

¿Cómo obtener una cookie específica?

Para extraer una cookie específica, asegúrate de haberla configurado previamente y luego usa:

cy.it('debería obtener una cookie específica', () => {
  cy.getCookie('nombre').should('have.property', 'value', 'Javier');
});

¿Cómo lidiar con la limpieza automática de Cypress?

Cypress, para garantizar pruebas aisladas, limpia cookies y local storage automáticamente entre ejecuciones. Sin embargo, puedes preservar ciertas cookies:

  1. Preservar Cookies: Usa Cypress.Cookies.defaults() con la opción preserve.
Cypress.Cookies.defaults({
  preserve: 'nombre'
});
  1. Limpiar Cookies al inicio y al final: Utiliza before y after hooks para asegurarte de que las cookies sean manejadas de acuerdo a tus necesidades de prueba.
cy.before(() => {
  cy.clearCookies();
});

cy.after(() => {
  cy.clearCookie('nombre');
});

¿Cuál es el enfoque con la sesión experimental?

Cypress introduce una función experimental que permite manejar sesiones de una manera más eficiente y controlada:

  • Activar la funcionalidad experimental: Agrega experimentalSessionAndOrigin: true en el archivo de configuración de Cypress.
  • Utilizar cy.session para gestionar acciones repetitivas, como iniciar sesión, en múltiples pruebas.
cy.session('login', () => {
  cy.setCookie('nombre', 'Javier');
});

Esta nueva funcionalidad almacena el estado de las acciones y permite su reutilización, mejorando la eficiencia y velocidad de las pruebas.

¿Qué esperar del futuro de la gestión de cookies en Cypress?

La función experimental introduce un nuevo paradigma en la gestión de sesiones que pudiera reemplazar funciones tradicionales en futuras versiones de Cypress. Mientras tanto, es una herramienta poderosa que puedes explorar e implementar en sitios reales, especialmente cuando se necesita mantener tokens de autenticación entre solicitudes.

Si decides adoptar esta funcionalidad, úsala bajo tu propio riesgo y mantente al tanto de los cambios en las actualizaciones futuras de Cypress.

¡Sigue aprendiendo y experimentando mientras perfeccionas tus habilidades en testing automatizado!

Aportes 6

Preguntas 2

Ordenar por:

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

La mayor parte de esta clase esta obsoleta ya que en cypress 11 removieron la posiblidad de hacer varias cosas. mi version de cypress es la 12.17.1, les dejo mi codigo para quien le sirva

describe('Cookies', () => {
    beforeEach(() => {
        cy.session("Cookies",() => {
            cy.setCookie('nombre', 'Javier')
        })
    });
    it('Obtener las cookies', () => {
        cy.clearAllCookies()
        cy.visit("/")
        cy.getCookies().should('be.empty')
    });
    it('Agregar una cookie', () => {
        cy.setCookie('nombre', 'Javier')
        cy.getCookies().should('have.length', 1)
    });
    it('Obtener cookie especifica', () => {
        cy.getCookie('nombre').should('have.a.property', "value", "Javier");
    });
}); 

Desde mi frustracion con el primer curso cypress con el bendito autocompletado por fin encontre como hacer que vscode haga sugerencias de codigo para cypress, dejo el aporte por aca:
https://github.com/testing-library/cypress-testing-library
Tal y como explican en la instalacion del enlace de github, simplemente instalan la libreria con node y crean un archivo .json en la raiz del proyecto (osea normalmente donde esta package.json) pegando el codigo que les dicen en el tutorial y listo, espero les sea de utilidad

La URL que está usando el profesor es https://pokedexpokemon.netlify.app

al final el profesor explica la forma como resolver el problema que se presenta con las nuevas versiones de cypress

Con las nuevas actualizaciones, ya no es necesario colocar: experimentalSessionAndOrigin: true

En el cypress.config.

https://docs.cypress.io/guides/references/experiments

SI quieren leer acerca del uso de cy.session para guardar un token la info esta en el siguiente link:
https://docs.cypress.io/api/commands/session#Where-to-call-cysession