¿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:
- Establecer una cookie: Usa
cy.setCookie()
.
- 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:
- Preservar Cookies: Usa
Cypress.Cookies.defaults()
con la opción preserve
.
Cypress.Cookies.defaults({
preserve: 'nombre'
});
- 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!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?