¿Qué son las pruebas de carga? (Ejemplos)
⚡ Resumen inteligente
Las pruebas de carga miden el comportamiento de una aplicación de software cuando muchos usuarios acceden a ella simultáneamente, hasta alcanzar el pico de demanda previsto. Permiten identificar la capacidad operativa máxima, los cuellos de botella que la limitan y si la infraestructura actual es suficiente.

¿Qué es la prueba de carga?
Prueba de carga Es un proceso de prueba de software no funcional en el que se prueba el rendimiento de una aplicación de software bajo una carga esperada específica. Determina cómo se comporta la aplicación de software cuando varios usuarios acceden a ella simultáneamente. El objetivo de las pruebas de carga es mejorar los cuellos de botella del rendimiento y garantizar la estabilidad y el funcionamiento sin problemas de la aplicación de software antes de su implementación.
Esta prueba generalmente identifica:
- La capacidad operativa máxima de una aplicación.
- Determinar si la infraestructura actual es suficiente para ejecutar la aplicación.
- Sostenibilidad de la aplicación con respecto a la carga máxima de usuarios.
- Número de usuarios simultáneos que puede admitir una aplicación y escalabilidad para permitir que más usuarios accedan a ella.
Es un tipo de prueba no funcional. En Ingeniería de Software, las pruebas de carga se utilizan comúnmente para aplicaciones Cliente/Servidor basadas en Web, tanto de Intranet como de Internet.
¿Por qué son necesarias las pruebas de carga?
Algunos sitios extremadamente populares han sufrido graves períodos de inactividad cuando obtienen volúmenes masivos de tráfico. Los sitios web de comercio electrónico invierten mucho en campañas publicitarias, pero no en pruebas de carga para garantizar un rendimiento óptimo del sistema, cuando ese marketing genera tráfico.
Ejemplos de pruebas de carga
- Toysrus.com no pudo gestionar el tráfico generado por su propia campaña publicitaria, perdiendo tanto la inversión en marketing como las ventas que se suponía que debía producir.
- El sitio web de una aerolínea no pudo atender a más de 10000 usuarios durante una oferta de festival.
- La Enciclopedia Británica anunció el acceso gratuito a su base de datos en línea como una oferta promocional. No pudieron satisfacer la avalancha de tráfico durante semanas.
Muchos sitios sufren retrasos en los tiempos de carga cuando encuentran mucho tráfico. Algunos hechos -
- El abandono aumenta drásticamente a partir de los 3 segundos de tiempo de carga de la página, y el efecto se agrava en las conexiones móviles.
- Las páginas lentas le cuestan a los sitios de comercio electrónico ingresos cuantificables en cada visita, razón por la cual el rendimiento se trata como una métrica de negocio en lugar de una técnica.
¿Por qué realizar pruebas de carga?
- Las pruebas de carga brindan confianza en el sistema, su confiabilidad y rendimiento.
- Las pruebas de carga ayudan a identificar los cuellos de botella en el sistema en escenarios de gran estrés para el usuario antes de que ocurran en un entorno de producción.
- Las pruebas de carga brindan una excelente protección contra un rendimiento deficiente y se adaptan a estrategias complementarias para la gestión del rendimiento y el monitoreo de un entorno de producción.
Objetivos de las pruebas de carga
Las pruebas de carga identifican los siguientes problemas antes de trasladar la aplicación al mercado o a producción:
- Tiempo de respuesta para cada transacción
- Rendimiento de los componentes del sistema bajo diversas cargas.
- Rendimiento de los componentes de la base de datos bajo diferentes cargas
- Retraso de red entre el cliente y el servidor.
- Problemas de diseño de software
- Problemas de configuración del servidor como un servidor web, un servidor de aplicaciones, un servidor de bases de datos, etc.
- Problemas de limitación de hardware como maximización de CPU, limitaciones de memoria, cuellos de botella en la red, etc.
Las pruebas de carga determinarán si es necesario ajustar el sistema o modificar el hardware y el software para mejorar el rendimiento. Para realizar pruebas de carga de manera efectiva, puede utilizar varios herramientas de prueba de rendimiento que están disponibles para ayudarle a identificar áreas de mejora.
Requisitos previos para las pruebas de carga
La principal métrica para las pruebas de carga es el tiempo de respuesta. Antes de comenzar las pruebas de carga, debe determinar:
- Si el tiempo de respuesta ya está medido y comparado – Cuantitativo
- Si el tiempo de respuesta es aplicable al proceso de negocio – Relevante
- Si el tiempo de respuesta es justificable – Realista
- Si el tiempo de respuesta es alcanzable – Alcanzable
- Si el tiempo de respuesta se puede medir usando una herramienta o un cronómetro – Medible
Configuración del entorno antes de las pruebas de carga
| Plataforma de Hardware | Configuración del software |
|---|---|
|
|
Estrategias de pruebas de carga
Existen muchas formas de realizar pruebas de carga. A continuación, se presentan algunas estrategias de prueba de carga:
- Pruebas de carga manuales: Esta es una de las estrategias para ejecutar pruebas de carga, pero no produce resultados repetibles, no puede proporcionar niveles mensurables de estrés en una aplicación y es un proceso imposible de coordinar.
- Herramientas de prueba de carga desarrolladas internamente: Una organización que se da cuenta de la importancia de las pruebas de carga puede crear sus propias herramientas para ejecutar pruebas de carga.
- Herramientas de prueba de carga de código abierto: Hay varias herramientas de prueba de carga disponibles como código abierto que son gratuitas. Puede que no sean tan sofisticados como sus homólogos pagos, pero si tienes un presupuesto limitado, son la mejor opción.
- Herramientas de prueba de carga de clase empresarial: Generalmente vienen con función de captura/reproducción. Admiten una gran cantidad de protocolos. Pueden simular un número excepcionalmente grande de usuarios.
Cómo hacer pruebas de carga
El proceso de prueba de carga se puede describir brevemente de la siguiente manera:
- Crear un dedicado Entorno de prueba para pruebas de carga
- Defina los escenarios de prueba de carga.
- Determinar transacciones de prueba de carga para una aplicación.
- Preparar datos para cada transacción.
- Es necesario predecir el número de usuarios que acceden al sistema.
- Determinar las velocidades de conexión. Algunos usuarios pueden estar conectados a través de líneas arrendadas mientras que otros pueden usar acceso telefónico
- Determinar los diferentes navegadores y sistemas operativos utilizados por los usuarios
- Una configuración de todos los servidores como servidores web, de aplicaciones y de base de datos.
- Ejecución y seguimiento de escenarios de prueba. Recopilación de varias métricas
- Analiza los resultados. Hacer recomendaciones
- Afinar el sistema
- Volver a probar
Directrices para las pruebas de carga
- Las pruebas de carga deben planificarse una vez que la aplicación se vuelva funcionalmente estable.
- Una gran cantidad de datos únicos deberían estar listos en el grupo de datos.
- Se debe decidir el número de usuarios para cada escenario o script.
- Evite la creación de registros detallados para conservar el espacio de E/S del disco
- Trate de evitar la descarga de imágenes en el sitio.
- En el proceso de ejecución de casos de prueba de carga, se debe registrar la coherencia del tiempo de respuesta durante el período transcurrido y se debe comparar el mismo con varias ejecuciones de prueba.
Diferencia entre pruebas de carga y estrés
| Prueba de carga | Pruebas de estrés |
|---|---|
| Las pruebas de carga identifican los cuellos de botella en el sistema bajo diversas cargas de trabajo y verifican cómo reacciona el sistema cuando la carga aumenta gradualmente. | Pruebas de estrés Determina el punto de ruptura del sistema para revelar el punto máximo después del cual se rompe. |
| Para reconocer el límite superior del sistema, configure el SLA de la aplicación y compruebe cómo el sistema puede manejar una carga pesada. | Comprobar cómo se comporta el sistema bajo cargas extremas y cómo se recupera de un fallo. |
| Generar una mayor carga en una aplicación web es el objetivo principal de las pruebas de carga. | Las pruebas de estrés tienen como objetivo garantizar que, bajo una carga alta repentina y durante un período considerable, los servidores no colapsen. |
| Los atributos que se verifican en una prueba de carga son el rendimiento máximo, la cantidad de servidores y el tiempo de respuesta. | Este tipo de prueba comprueba el tiempo de respuesta de estabilidad, etc. |
| En las pruebas de carga, el límite de carga es un umbral de ruptura. | En las pruebas de estrés, el límite de carga está por encima del umbral de rotura. |
Diferencia entre pruebas funcionales y de carga
| Prueba de funcion | Prueba de carga |
|---|---|
| Los resultados de las pruebas funcionales son fácilmente predecibles ya que tenemos definidos los pasos y condiciones previas adecuados. | Los resultados de las pruebas de carga son impredecibles |
| Los resultados de las pruebas funcionales varían ligeramente. | Los resultados de las pruebas de carga varían drásticamente |
| Frecuencia de ejecución Prueba de funcion será alto | La frecuencia de ejecución de las pruebas de carga será baja. |
| Los resultados de las pruebas funcionales dependen de los datos de la prueba. | Las pruebas de carga dependen de la cantidad de usuarios. |
Herramientas de prueba de carga
LoadRunner
LoadRunner, originalmente de HP y ahora parte de OpenText Tras la adquisición por parte de Micro Focus, se prueban las aplicaciones bajo carga normal y máxima. Se genera carga mediante usuarios virtuales que emulan el tráfico de red real y se muestran los resultados gráficamente.
Lea más en el Tutorial de LoadRunner.
Apache JMeter
Un código abierto Java herramienta y la opción gratuita más utilizada. Admite HTTP, JDBC, JMS, FTP y más, almacena planes de prueba como XML y se integra en pipelines de CI. Ver el JMeter tutoriales para un recorrido.
Gatling
Una herramienta de código abierto cuyas pruebas están escritas como código en Scala o Java. Permite gestionar una alta concurrencia en hardware modesto y genera informes HTML detallados, lo que resulta adecuado para equipos que prefieren scripts de prueba con control de versiones.
k6
Una herramienta de código abierto con pruebas escritas en JavaScript diseñado para realizar pruebas de rendimiento por parte de los desarrolladores dentro de una canalización de CI, en lugar de como una actividad de control de calidad independiente.
Elegir una herramienta
Toma JMeter Para obtener la mayor cobertura de protocolos sin coste alguno, Gatling o k6 cuando el equipo quiera que las pruebas se mantengan en el control de versiones junto con la aplicación, y una herramienta comercial como LoadRunner cuando la compatibilidad con protocolos empresariales y la asistencia del proveedor justifiquen la licencia.
Ventajas y desventajas de las pruebas de carga
Las siguientes son las ventajas de las pruebas de carga:
- Identificación de cuellos de botella en el rendimiento antes de la producción.
- Mejora la escalabilidad del sistema.
- Minimizar el riesgo relacionado con el tiempo de inactividad del sistema
- Costos reducidos de fallas.
- Incrementar la satisfacción del cliente
Desventajas de las pruebas de carga:
- La mayoría de las herramientas requieren conocimientos de programación para crear guiones gráficos que muestren escenarios realistas.
- Las herramientas pueden ser costosas ya que el precio depende de la cantidad de usuarios virtuales admitidos.
Métricas clave para registrar durante una prueba de carga
La sección de requisitos previos establece el tiempo de respuesta como la métrica principal. En la práctica, un informe de prueba de carga necesita seis cifras, ya que el tiempo de respuesta por sí solo no permite determinar la causa de la ralentización del sistema.
| Métrico | Lo que te dice | Señal de advertencia |
|---|---|---|
| Tiempo promedio de respuesta | La experiencia típica del usuario | Aumenta a medida que aumenta la carga |
| tiempo de respuesta del percentil 95 | La experiencia de los usuarios más lentos | Muy por encima del promedio |
| Throughput | Solicitudes procesadas con éxito por segundo | Aplanamiento o caída mientras la carga aumenta |
| Tasa de error | Porcentaje de solicitudes fallidas o con tiempo de espera agotado | Cualquier aumento por encima del umbral acordado |
| Usuarios concurrentes | Sesiones simultáneas reales alcanzadas | Inferior al escenario previsto |
| Uso de recursos del servidor | Capacidad de CPU, memoria, disco y red | Cualquier recurso por encima de aproximadamente el 80 por ciento |
Rendimiento de lectura junto con tiempo de respuesta. El aumento del tiempo de respuesta con el aumento del rendimiento simplemente significa que el sistema está más ocupado. El aumento del tiempo de respuesta con el rendimiento que cae El rendimiento significa que ha superado su capacidad y ahora está perdiendo trabajo, que es el punto que la prueba pretende determinar.
Nunca informes solo el promedio. Un promedio de 900 ms con un percentil 95 de 1.1 segundos describe un sistema consistente. El mismo promedio con un percentil 95 de 11 segundos significa que uno de cada veinte usuarios está teniendo una experiencia inaceptable que el promedio oculta.
Comparación de esta prueba con otras pruebas de rendimiento
Las pruebas de rendimiento son un conjunto de pruebas que se diferencian en la forma de la carga aplicada, razón por la cual se confunden con tanta facilidad.
| Tipo de prueba | ¿Qué se incrementa? | Pregunta que responde |
|---|---|---|
| Prueba de carga | Usuarios simultáneos, hasta el pico previsto | ¿Cumple los objetivos en condiciones normales de tráfico máximo? |
| Pruebas de volumen | Datos almacenados en la base de datos | ¿Es capaz de gestionar el crecimiento del conjunto de datos? |
| Prueba de esfuerzo | Carga por encima de la capacidad, hasta que falle. | ¿Dónde se rompe y cómo? |
| prueba de picos | Carga, instantánea y extremadamente | ¿Sobrevive y se recupera de un shock? |
| Pruebas de resistencia | Duración, a carga normal | ¿El rendimiento se degrada con el tiempo? |
| Prueba de remojo | Duración, recursos de visualización | ¿Existen fugas de memoria o de identificadores? |
| Prueba de estabilidad | Condiciones variables | ¿Sigue siendo fiable a medida que cambian las condiciones? |
La distinción que más importa aquí: Las pruebas de volumen permiten escalar los datos, las pruebas de carga permiten escalar los usuarios. Un informe que tarda dos segundos en procesar diez mil filas y dos minutos en procesar diez millones de filas tiene un problema de volumen, no de carga, y ninguna cantidad de capacidad adicional del servidor lo solucionará.



