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

Uso de Fixtures en Pruebas Automatizadas con Cypress

19/29
Recursos

¿Cómo utilizar fixtures en pruebas automatizadas?

Trabajar con fixtures en pruebas automatizadas es una técnica poderosa que permite que nuestros tests sean dirigidos por data reutilizable y mantenible. En esta clase, aprenderás a implementar fixtures para almacenar información no sensible y a enfrentar diversas situaciones de testing. Los fixtures son perfectos para datos que no cambian según el ambiente, como credenciales falsas o configuraciones por defecto.

¿Qué son los fixtures y cómo se diferencian de las variables de entorno?

Los fixtures son archivos que almacenan información que no es sensible y que no va a cambiar dependiendo del entorno. A diferencia de las variables de entorno, que se utilizan para definir valores que pueden variar, los fixtures son soluciones más estáticas y reutilizables para datos consistentes.

¿Cómo implementar un test con fixtures?

Comencemos con el código base para un login erróneo utilizando fixtures en JSON. Este ejemplo te demostrará cómo implementar un test simple y práctico.

// Definición del test de login erróneo
describe('Login erróneo con fixtures', () => {
  // Validar que estamos en la página de login
  it('Validar página de login', () => {
    cy.visit('/login');
    cy.url().should('include', '/login');
  });

  // Leer archivos de fixtures
  it('Login erróneo mediante fixture', () => {
    cy.fixture('credentials').then(credentials => {
      cy.get('#email').type(credentials.email);
      cy.get('#password').type(credentials.password);
      cy.get('#login-button').click();
      cy.contains('Error de credenciales').should('be.visible');
    });
  });
});

¿Cómo crear un fixture en JSON?

Crear un archivo fixture en JSON es sumamente sencillo. Para nuestro ejemplo, creamos un archivo credentials.json que pueda ser utilizado por Cypress.

{
  "email": "[email protected]",
  "password": "contraseñaerrónea"
}

¿Cómo manejar múltiples fixtures y pruebas dinámicas?

Para probar múltiples credenciales o realizar tests dinámicos, podemos utilizar un arreglo de objetos que contenga los nombres de los fixtures y usarlos en un forEach. Éste es un pequeño ejemplo de cómo se puede lograr:

const credentialsForUsers = [
  { nombre: "usuarios", titulo: "login con users" },
  { nombre: "credentials", titulo: "login con credentials" }
];

credentialsForUsers.forEach(({nombre, titulo}) => {
  describe(titulo, () => {
    it('Realizar login con fixture', () => {
      cy.visit('/login');
      cy.fixture(nombre).then(credentials => {
        cy.get('#email').type(credentials.email);
        cy.get('#password').type(credentials.password);
        cy.get('#login-button').click();
        cy.contains('Error de credenciales').should('be.visible');
      });
    });
  });
});

Optimización de pruebas con fixtures

Cuando trabajamos con múltiples credenciales, podemos optimizar nuestros tests:

  • Reutilización de código: Usa variables y funciones que permitan reutilizar pasos comunes.
  • Manejo de datos: Agrupa credenciales en un solo archivo fixture y recórrelos programáticamente.
  • Comprobaciones: Asegúrate de que tu test siempre está comprobando el mensaje de error o éxito esperado.

Sigue estos consejos y aprovecha al máximo los fixtures para enriquecer tus pruebas automatizadas. No olvides practicar, experimentar y ajustar tus configuraciones a las necesidades de tu proyecto. La práctica constante te llevará a mejorar tus habilidades como tester. ¡El próximo tema es el Behavior Driven Development (BDD)!

Aportes 1

Preguntas 0

Ordenar por:

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

excelente lo de fixtures