Saltar al contenido
SDETRole
SDETRole

Glosario · Rendimiento

Pruebas de estrés

En inglés: Stress testing

También llamado: stress test, prueba de estrés, test de estrés, breakpoint testing

Definición

Prueba de rendimiento que lleva la carga más allá de lo esperado para encontrar el punto de ruptura, ver cómo falla el sistema y comprobar que se recupera después.

Las pruebas de estrés (stress testing) llevan deliberadamente un sistema más allá de su carga esperada, paso a paso, hasta que deja de cumplir sus objetivos o falla por completo. Mientras que una prueba de carga pregunta “¿aguantamos el pico normal?”, una prueba de estrés pregunta “¿cuánto podemos soportar, qué se rompe primero y qué les pasa a los usuarios cuando ocurre?”.

Ejemplo (k6 con tasa de llegada creciente)

Se aumenta la tasa de solicitudes por escalones, independientemente de lo rápido que responda el servidor:

import http from 'k6/http';

export const options = {
  scenarios: {
    breakpoint: {
      executor: 'ramping-arrival-rate',
      startRate: 50,
      timeUnit: '1s',
      preAllocatedVUs: 200,
      maxVUs: 2000,
      stages: [
        { duration: '5m', target: 200 },
        { duration: '5m', target: 400 },
        { duration: '5m', target: 800 },
        { duration: '3m', target: 0 }, // ramp down to observe recovery
      ],
    },
  },
};

export default function () {
  http.get('https://staging.example.com/api/search?q=shoes');
}

Un executor de tasa de llegada sigue enviando solicitudes al ritmo objetivo aunque las respuestas se ralenticen, lo que se parece más a los usuarios reales y deja ver la saturación con más claridad que un número fijo de usuarios virtuales.

Qué observar

  • El codo. La tasa a partir de la cual los percentiles de latencia empiezan a subir bruscamente mientras el throughput se aplana. Esa es tu capacidad práctica.
  • El modo de fallo. Una degradación elegante se ve como respuestas 429 o 503 rápidas y carga descartada. Un mal fallo se ve como timeouts, fallos en cascada en otros servicios, corrupción de datos o procesos caídos.
  • La recuperación. Tras la bajada de carga, ¿vuelve la latencia a la normalidad por sí sola, o las conexiones atascadas y las colas llenas requieren un reinicio?
  • El primer cuello de botella. CPU, pool de conexiones a la base de datos, pool de hilos, memoria o una dependencia externa. Corregirlo desplaza el punto de ruptura, por eso las pruebas de estrés suelen repetirse.

En qué se diferencia de una prueba de picos

Una prueba de estrés sube la carga gradualmente para encontrar un límite. Una prueba de picos (spike testing) salta casi al instante de una carga normal a una muy alta, por ejemplo en una venta flash o tras una notificación push, y comprueba si el autoescalado y las colas reaccionan lo bastante rápido.

Errores comunes

Ejecutar pruebas de estrés contra entornos compartidos de los que dependen otros equipos, lanzarlas desde un único generador de carga que se satura antes que el servidor, y quedarse en “se rompió a 800 rps” sin registrar cómo se rompió ni si se recuperó.

Escribe para buscar en todo SDETRole.

Búsqueda de texto completo con Pagefind · se ejecuta en tu navegador Abrir la página de búsqueda →