# Pruebas de carga

> Simular muchos usuarios a la vez para ver si el sistema aguanta antes de que lleguen.

- Nivel: Intermedio
- Temas: Cloud, Software
- URL: https://tidbit.legios.com.ar/es/load-testing/
- En inglés: [Load testing](https://tidbit.legios.com.ar/load-testing/)

Las **pruebas de carga** consisten en mandarle a una app o API una cantidad grande y controlada de tráfico falso para medir cómo se comporta bajo presión. Una herramienta hace de miles de usuarios, que inician sesión, buscan, pagan, y va registrando tiempos de respuesta, tasa de errores y cuánta CPU, memoria y capacidad de base de datos usa el sistema mientras los números suben.

Hay algunas variantes. Una **prueba de carga** común revisa el tráfico que esperás, como el pico de un lunes normal. Una **prueba de estrés** sigue empujando hasta que algo se rompe, para encontrar el límite y ver cómo falla. Una **prueba de picos** (spike test) pasa de tranquilo a enorme en segundos, como cuando se abre la venta de entradas para un recital, y una **prueba de resistencia** (soak test) mantiene una carga pareja durante horas para detectar pérdidas lentas. Herramientas populares: k6, JMeter, Gatling y Locust.

Importa porque los problemas de rendimiento casi nunca aparecen con una persona probando a mano. Una consulta que tarda 20 ms sola puede tardar segundos cuando la corren mil personas al mismo tiempo. Hacer pruebas de carga antes de un lanzamiento o de un día de ofertas te dice si el autoscaling reacciona a tiempo, dónde está el cuello de botella y cuántos servidores necesitás de verdad. Hacelas contra un entorno de prueba, o avisale antes a tu proveedor cloud y a tu equipo: para un servidor, una prueba de carga se parece mucho a un ataque.

## Una analogía

Antes de inaugurar un puente nuevo, los ingenieros le pasan camiones pesados por encima y miran cuánto se dobla. Las pruebas de carga son lo mismo, con usuarios falsos en lugar de camiones.

## Para quedarse

- Tráfico simulado para medir velocidad, errores y uso de recursos bajo carga.
- Variantes: carga, estrés (buscar el límite), picos y resistencia (larga duración).
- Herramientas comunes: k6, JMeter, Gatling, Locust.
- Conviene hacerlas antes de lanzamientos o días pico, y avisar antes.

## Para seguir leyendo

- [Pruebas de rendimiento del software en Wikipedia](https://es.wikipedia.org/wiki/Pruebas_de_rendimiento_del_software)
- [Guía de pruebas de carga, documentación de Grafana k6 (en inglés)](https://grafana.com/docs/k6/latest/testing-guides/test-types/load-testing/)
- [Load testing en Wikipedia (en inglés)](https://en.wikipedia.org/wiki/Load_testing)

## Términos relacionados

- [API](https://tidbit.legios.com.ar/es/api/): El menú de cosas que un programa le deja pedir a otro programa.
- [CPU](https://tidbit.legios.com.ar/es/cpu/): El chip que ejecuta tus programas, una instrucción tras otra, muy rápido.
- [Base de datos](https://tidbit.legios.com.ar/es/database/): Un depósito ordenado de datos que los programas consultan y actualizan sin riesgo.
- [Autoescalado](https://tidbit.legios.com.ar/es/autoscaling/): Sumar y sacar servidores en forma automática a medida que sube y baja la demanda.
- [Servidor](https://tidbit.legios.com.ar/es/server/): Una computadora cuyo trabajo es responder pedidos de otras computadoras, todo el día.
