¿Qué son las pruebas de escalabilidad? Aprende con el ejemplo
⚡ Resumen inteligente
Las pruebas de escalabilidad miden cómo se comporta una aplicación cuando la carga de usuarios, el volumen de datos o la tasa de transacciones aumentan o disminuyen, revelando el punto exacto en el que el rendimiento deja de escalar e identificando el cuello de botella responsable.
¿Qué son las pruebas de escalabilidad?
Pruebas de escalabilidad Es un método de prueba no funcional que mide el rendimiento de un sistema o red al aumentar o disminuir el número de solicitudes de los usuarios. El objetivo de las pruebas de escalabilidad es garantizar que el sistema pueda gestionar un aumento previsto en el tráfico de usuarios, el volumen de datos y la frecuencia de las transacciones. Evalúa la capacidad del sistema para satisfacer la creciente demanda.
Las pruebas de escalabilidad son un subtipo de pruebas de rendimiento, por lo que se centra en el comportamiento de una aplicación cuando se implementa en un sistema más grande o se ejecuta bajo una carga excesiva. Ingeniería de SoftwareLas pruebas de escalabilidad miden el punto en el que una aplicación deja de escalar e identifican la razón que lo provoca.
¿Por qué realizar pruebas de escalabilidad?
Los problemas de capacidad rara vez aparecen durante las pruebas funcionales. Suelen surgir en el día de mayor actividad comercial del año, cuando se lanza una campaña de marketing o cuando un conjunto de datos que creció silenciosamente durante dos años finalmente ralentiza todas las consultas. Las pruebas de escalabilidad exponen esos límites primero en un entorno controlado. En concreto, le ayudan a:
- Determina cómo se adapta la aplicación a medida que aumenta la carga de trabajo y dónde se estabiliza esa curva.
- Determina el límite de usuarios simultáneos para la aplicación web antes de que los tiempos de respuesta se vuelvan inaceptables.
- Determinar la degradación del rendimiento en el lado del cliente y la experiencia del usuario final bajo carga, como por ejemplo la lentitud en la renderización de la pantalla.
- Determinar la robustez y la degradación del servidor, incluyendo la saturación de la CPU, las fugas de memoria y el agotamiento del grupo de conexiones.
La relación se puede visualizar más fácilmente como una curva: el rendimiento aumenta a medida que se añade carga hasta que un recurso se satura, después de lo cual los usuarios adicionales solo alargan la cola.
Tipos de pruebas de escalabilidad
La escalabilidad no es una propiedad única, por lo que un plan de pruebas suele abarcar más de una dimensión. Los cuatro tipos que se describen a continuación son los que la mayoría de los equipos miden, y los dos primeros determinan la configuración del entorno de pruebas.
| Tipo | ¿Qué se escala? | Lo que demuestra la prueba |
|---|---|---|
| Escalabilidad vertical (aumentar proporcionalmente) | CPU, memoria o almacenamiento añadidos a un único servidor | ¿Cuánta carga adicional absorbe una máquina mejorada y dónde se sitúa el límite de un solo nodo? |
| Escalabilidad horizontal (ampliar) | Servidores, contenedores o nodos adicionales detrás de un balanceador de carga. | Ya sea que el rendimiento aumente aproximadamente en proporción a los nodos agregados, o que los recursos compartidos lo limiten. |
| Escalabilidad funcional | Nuevas funciones, módulos o servicios | Si la funcionalidad añadida puede absorberse sin degradar las transacciones existentes. |
| Escalabilidad administrativa | Usuarios, inquilinos, equipos o entornos para gestionar | Si la incorporación de nuevos usuarios, los permisos y la monitorización seguirán siendo viables a medida que la organización crezca. |
El escalado vertical es más sencillo porque la arquitectura rara vez cambia, pero una sola máquina siempre tiene un límite. El escalado horizontal elimina ese límite y mejora la tolerancia a fallos, a costa de la latencia de la red, la consistencia de los datos y la sobrecarga de coordinación; todo lo cual debe medirse en la prueba, en lugar de asumirse.
Qué probar en las pruebas de escalabilidad
La escalabilidad se evalúa mediante mediciones, no por impresiones. Registre los siguientes atributos en cada paso de carga para que se pueda observar la tendencia, y no solo el resultado final.
| Atributo | Lo que te dice |
|---|---|
| Response time | Tiempo transcurrido entre la solicitud del usuario y la respuesta del sistema; este tiempo debería mantenerse constante a medida que aumenta la concurrencia. |
| Transición de pantalla | Con qué rapidez una página o vista da paso a la siguiente bajo carga |
| Throughput | Volumen de solicitudes procesadas por unidad de tiempo; una meseta marca el límite de escalabilidad. |
| mediciones de tiempo | Tiempo de sesión, tiempo de reinicio, tiempo de impresión, tiempo de transacción y tiempo de ejecución de tareas. |
| Rendimiento en función del número de usuarios | Cómo evoluciona cada métrica a medida que se añaden usuarios concurrentes de forma incremental. |
| Solicitar tarifas | Solicitudes por segundo, transacciones por segundo y visitas por segundo |
| Uso de la red | Ancho de banda consumido y latencia de paquetes entre niveles |
| Uso de CPU y memoria | Costo de recursos por transacción; una cifra que aumenta constantemente suele indicar una fuga. |
| contadores de servidor web | Solicitudes y respuestas por segundo, profundidad de la cola y conexiones rechazadas. |
| Rendimiento bajo carga | Comportamiento combinado una vez que todas las métricas se leen juntas en el pico |
Estrategia de pruebas para pruebas de escalabilidad
La estrategia de prueba para las pruebas de escalabilidad difiere según el tipo de aplicación que se esté probando. Si una aplicación accede a una base de datos de CRISPR Medicine NewsLos parámetros de prueba incluirán el tamaño de la base de datos en relación con el número de usuarios, etcétera.
Requisitos previos para las pruebas de escalabilidad
- Capacidad de distribución de carga — Compruebe si la herramienta de prueba de carga permite generar la carga a partir de varias máquinas y controlarla desde un punto central.
- Operating sistema — Comprueba qué sistemas operativos Los agentes de generación de carga y el maestro de pruebas de carga se ejecutan bajo.
- Procesador — Compruebe qué tipo de CPU se requiere para el agente de usuario virtual y el maestro de pruebas de carga.
- Salud Cerebral — Comprueba cuánta memoria sería suficiente para el agente de usuario virtual y el maestro de pruebas de carga.
- Entorno de prueba — Compruebe que el entorno de prueba reproduce la producción con la suficiente fidelidad como para que los resultados sean transferibles.
Cómo hacer pruebas de escalabilidad
- Defina un proceso repetible para ejecutar pruebas de escalabilidad a lo largo del ciclo de vida de la aplicación.
- Determinar los criterios de escalabilidad.
- Haga una lista corta de las herramientas de software necesarias para ejecutar la prueba de carga.
- Establecer el entorno de pruebas y configurar el hardware necesario para ejecutar pruebas de escalabilidad.
- Planifique los escenarios de prueba, así como las pruebas de escalabilidad.
- Cree y verifique el script del usuario virtual.
- Crear y verificar los escenarios de prueba de carga.
- Ejecutar las pruebas
- Evaluar los resultados
- Generar los informes necesarios
Plan de prueba de escalabilidad
Antes de crear las pruebas, elabore un plan de pruebas detallado. Este es un paso importante para garantizar que la prueba cumpla con los requisitos de la aplicación.
A continuación se presentan los atributos para crear una estrategia bien definida. Plan de prueba para pruebas de escalabilidad.
- Pasos para los guionesEl script de prueba debe contener pasos detallados que determinen las acciones exactas que realizaría un usuario.
- Datos en tiempo de ejecuciónEl plan de pruebas debe determinar cualquier dato de tiempo de ejecución que sea necesario para interactuar con la aplicación.
- Pruebas basadas en datosSi los scripts necesitan datos variables en tiempo de ejecución, es necesario comprender todos los campos que requieren estos datos.
Ejemplo de prueba de escalabilidad
Imaginemos una tienda online que espera 2,000 compradores simultáneos durante una venta de temporada. El equipo acuerda primero un criterio de aprobación: la transacción de pago debe completarse en menos de tres segundos para el 95 % de los usuarios, con una tasa de error inferior al uno por ciento.
La prueba ejecuta el mismo script de búsqueda, carrito y pago con 250, 500, 1,000, 1,500 y 2,000 usuarios virtuales. El tiempo de respuesta se mantiene cerca de dos segundos hasta los 1,000 usuarios, aumenta a 2.8 segundos con 1,500 y alcanza los nueve segundos con 2,000, mientras que la CPU de la base de datos se sitúa en el 98 %. Por lo tanto, el límite de escalabilidad es de aproximadamente 1,500 usuarios, y el cuello de botella reside en la capa de la base de datos, no en los servidores de aplicaciones que el equipo tenía previsto añadir.
Herramientas de prueba de escalabilidad
Las pruebas de escalabilidad requieren una herramienta capaz de generar carga en varias máquinas simultáneamente e informar los resultados de forma centralizada. La elección suele depender del lenguaje de programación principal del equipo y de los protocolos que se estén probando.
| scripting | Mejores adecuados para | |
|---|---|---|
| Apache JMeter | Planes de prueba GUI más XML, Java basado | Amplia cobertura de protocolos, incluidos JDBC, JMS, LDAP y SOAP. |
| Grafana k6 | JavaGuión o TypeScript | Pruebas de API y microservicios integradas en un pipeline de CI/CD. |
| Gatling | Java, Kotlin o Scala DSL | Alto número de usuarios virtuales por inyector con informes HTML detallados. |
| Langosta | Natural Python | Python equipos que necesitan extender el cliente más allá de HTTP |
| LoadRunner | Scripts tipo C grabados en VuGen | Grandes entornos empresariales con aplicaciones heredadas y empaquetadas. |
Ejecutores alojados en la nube como BlazeMeterLoadView y Gatling Enterprise se sitúan sobre varios de estos motores y merece la pena considerarlos cuando una prueba requiere decenas de miles de usuarios virtuales o tráfico de múltiples regiones geográficas. Un análisis más amplio de la categoría está disponible en la guía. herramientas de prueba de rendimiento.
Desafíos y mejores prácticas en las pruebas de escalabilidad
Resultados de escalabilidad más decepcionantes tracVolver a la configuración de prueba en lugar de a la aplicación. Estos son los problemas recurrentes y los hábitos que los previenen.
Desafíos comunes
- Entornos de tamaño reducido — Un banco de pruebas con la mitad de la memoria de producción informa de un cuello de botella que no existe en producción.
- Modelos de carga de trabajo poco realistas — Los scripts sin tiempo de espera ni variación de datos acceden a cachés que los usuarios reales no alcanzarían.
- Resultados ruidosos — El escalado automático, la recolección de basura y el hardware compartido en la nube hacen que dos ejecuciones idénticas no coincidan.
- Observabilidad delgada — Sin métricas del lado del servidor, un resultado lento muestra que algo falló, pero no qué.
- Costo — Generar una concurrencia muy alta requiere su propia flota de generadores de carga, lo cual es fácil de subestimar en el presupuesto.
Mejores prácticas
- Acuerden los criterios de aprobación, como un percentil de tiempo de respuesta y un límite máximo de tasa de error, antes de la primera ejecución.
- Aumente la carga gradualmente, siguiendo un plan preestablecido, y mantenga cada paso el tiempo suficiente para que el sistema se estabilice.
- Varíe los datos de prueba para cada usuario virtual, de modo que el almacenamiento en caché no distorsione los resultados.
- Recopile métricas de la aplicación, la base de datos y la infraestructura junto con los datos del lado del cliente.
- Almacene los scripts de prueba en un sistema de control de versiones y ejecute una breve comprobación de escalabilidad en cada compilación, seguida de una ejecución completa antes del lanzamiento.
- Compare las tendencias entre diferentes compilaciones en lugar de juzgar un solo informe de forma aislada.
Pruebas de escalabilidad frente a pruebas de carga
A menudo se confunden porque ambos aplican carga. La diferencia radica en la pregunta que responde cada uno: las pruebas de escalabilidad preguntan hasta dónde puede crecer el sistema, mientras que Prueba de carga pregunta si puede soportar la carga ya prevista.
| Base | Pruebas de escalabilidad | Prueba de carga |
|---|---|---|
| Enfócate | Se centra en el rendimiento de sus sitios web, software, hardware y aplicaciones cuando se realizan cambios en el tamaño o el volumen del sistema para satisfacer una necesidad creciente. | Las pruebas de carga se centran en probar una aplicación bajo cargas elevadas para determinar en qué punto falla el tiempo de respuesta del sistema. |
| Patrón de carga | La carga se incrementa por etapas, y se pueden agregar recursos entre etapas. | La carga se mantiene en un pico previsto durante una duración fija. |
| Pregunta respondida | ¿Hasta dónde puede crecer este sistema y qué lo limita? | ¿Este sistema cumple hoy con los objetivos acordados? |
| Salida típica | Un límite de escalabilidad, un cuello de botella y un plan de capacidad. | Aprobado o suspenso en relación con los objetivos de tiempo de respuesta y rendimiento. |
Ambos se sientan debajo del pruebas no funcionales paraguas junto a pruebas de estrés, pruebas de inyección, prueba de resistencia y pruebas de volumeny una estrategia de rendimiento madura suele ejecutar varias de ellas contra los mismos scripts.

