Pruebas de carga frente a pruebas de estrés

Pruebas de carga y estrés comparadas

 

Una prueba de carga, por definición, mide el rendimiento de un sistema con una carga esperada.

Por el contrario, una prueba de esfuerzo sobrecarga un sistema para encontrar el punto de ruptura.

Examen de las diferencias:

Pruebas de carga frente a estrés

 

pruebas de rendimiento de estrés Una prueba de carga es una prueba planificada para realizar un número específico de solicitudes a un sistema para probar la funcionalidad del sistema bajo niveles específicos de solicitudes simultáneas. Una prueba de carga garantiza que un sistema web pueda controlar un volumen de tráfico esperado y, por lo tanto, a veces se conoce como pruebas de volumen. El objetivo de una prueba de carga es demostrar que un sistema puede controlar el volumen esperado con una degradación del rendimiento mínima a aceptable. Los evaluadores deben definir el umbral de degradación del rendimiento aceptable como un valor que se considera aceptable para el usuario final para que los usuarios no reboten desde el sitio.

Una prueba de esfuerzo es una prueba diseñada para aumentar el número de solicitudes simultáneas en un sistema más allá de un punto donde el rendimiento se degrada, incluso hasta el punto de falla completa. Cuando una prueba de carga (o prueba de API) alcanzará su punto máximo en el número de usuarios simultáneos, una prueba de esfuerzo básica continuará aumentando la carga en el sistema hasta que los recursos se sobrecarguen. Esto lleva al sistema a un estado de error potencial para ver cómo lo maneja el sistema y si el sistema puede realizar una recuperación correcta.

Dentro de estas definiciones de una prueba de carga y una prueba de esfuerzo, encontramos que ciertamente no son completamente independientes entre sí. A menudo, al ejecutar los límites superiores de una prueba de carga, es posible que termine ejecutando efectivamente una prueba de esfuerzo en la que se supera el sistema más allá de los límites de los recursos disponibles. En este momento, es posible que comience a ver errores en una prueba de carga idéntica a los errores que normalmente se ven al ejecutar una prueba de esfuerzo.

Cuándo elegir una prueba de carga o una prueba de esfuerzo

 

Una diferencia entre una prueba de carga y una prueba de esfuerzo es que puede insertar pausas en una prueba de carga para simular el tráfico de usuario real. Con una prueba de esfuerzo, puede ejecutar tantos usuarios simultáneos como sea posible para generar tráfico excesivo para una prueba de esfuerzo.

Los objetivos de una prueba de carga son bastante diferentes en comparación con los objetivos de una prueba de esfuerzo. Se realiza una prueba de carga para garantizar que un sitio web, aplicación web o API sea capaz de manejar un número específico de usuarios a la vez. Las pruebas de carga se utilizan a menudo en el proceso de planificación de la capacidad, para garantizar que un sistema pueda manejar el crecimiento a niveles específicos de tráfico simultáneo.

Una prueba de esfuerzo se utiliza para empujar específicamente un sistema más allá de su capacidad prevista para identificar componentes que comienzan a ralentizarse, identificar cuellos de botella en el sistema y sacar a la luz posibles cuellos de botella o puntos de falla.

Comúnmente utilizado para pruebas de carga y estrés:
Establecimiento de métricas de rendimiento de línea base

Las pruebas de carga se realizan normalmente como una serie de pasos en los que el sistema de pruebas inicia una cantidad de usuarios simultáneos que se sabe que son compatibles con la infraestructura. Esto establece un conjunto de líneas base de datos de rendimiento a los que hacer referencia a medida que aumenta el número de usuarios simultáneos a lo largo de la prueba. La prueba de rendimiento puede ayudar a determinar varias líneas de base diferentes, como la velocidad de conexión promedio, la latencia promedio y el tiempo promedio para descargar un archivo de tamaño fijo y más.

Una vez que se conocen los valores de rendimiento de línea base, el número de usuarios aumenta a un número que se espera de forma realista para visitar el sitio durante un período de muestra. La prueba a menudo se ejecutará en ese número estático de usuarios durante varios minutos para verificar la estabilidad del sitio web después de que el sistema se estabilice en el nuevo nivel de carga.

usuarios virtuales

Es importante tener en cuenta que los términos prueba de referencia y prueba de referencia a menudo se usan indistintamente, sin embargo, existen diferencias entre estos dos términos. Las pruebas de línea base se llevan a cabo para garantizar que el rendimiento de un sitio o aplicación no disminuya con el tiempo. Por ejemplo, durante una prueba de línea base, las métricas de rendimiento se registran para que cuando esa aplicación o sitio se actualice en el futuro, los ingenieros puedan probar y comparar las nuevas métricas de rendimiento con las métricas anteriores. Estas pruebas de referencia también incluirían cualquier nuevo cambio de código, software, hardware y red. El objetivo es ofrecer una aplicación o sitio consistente, lo que a su vez garantiza una experiencia positiva para los usuarios.

Las pruebas de referencia son la práctica de comparar el rendimiento de la aplicación con estándares y requisitos específicos predefinidos de la industria o de la organización. Al igual que las pruebas de referencia, las pruebas de referencia incluyen la medición y el registro del rendimiento del hardware, el software y las condiciones de la red. Las pruebas de referencia ayudan a medir la calidad del servicio para los propios requisitos de una organización o en comparación con otras organizaciones. Estas métricas ayudan a crear SLA (Acuerdos de Nivel de Servicio) para las organizaciones y proporcionan un nivel de servicio garantizado para los usuarios o clientes. Lea más sobre las pruebas de referencia y de referencia.

Una diferencia entre establecer una métrica de rendimiento de línea de base durante una prueba de carga y una prueba de esfuerzo es que la diferencia entre la línea de base y el rendimiento máximo ayudará a determinar si tiene los sistemas adecuados para manejar la carga máxima, mientras que durante una prueba de esfuerzo está más preocupado por el punto en el que el sistema se estresa. o incluso deja de funcionar correctamente.

Pruebas de carga o estrés para identificar cuellos de botella de la aplicación web

Las aplicaciones basadas en web normalmente se ejecutan en un explorador y cuando se programan correctamente, debido a su naturaleza asincrónica, pueden manejar muchos cientos o miles de usuarios simultáneos. Si está generando carga esperada dentro de la capacidad del sistema, los tiempos de respuesta de la aplicación deben permanecer dentro de las directrices generadas. Si empuja el sistema más allá de estos límites, se mueve al ámbito de las pruebas de estrés, causando presión deliberada en el sistema para identificar los componentes que fallan (esto a menudo se realiza con herramientas de código abierto como JMeter). Por lo tanto, cualquier prueba realizada con el fin de identificar cuellos de botella generalmente se considera una prueba de esfuerzo (que es diferente de las pruebas de API y la supervisión de API).

informe sla
Pruebas de carga para establecer acuerdos de nivel de servicio (SLA)

 

Las pruebas de carga se realizan mejor en un entorno de producción para comprender los tiempos de respuesta medios bajo la carga esperada del usuario. Estos tiempos de respuesta promedio se convierten en la línea de base para los SLA aceptables. A partir de aquí, depende de usted determinar umbrales adicionales que se consideran inaceptables bajo sus SLA en términos de rendimiento esperado para sus clientes.

Pruebas de carga para la planificación de la capacidad

Generar una mayor carga en una aplicación web puede ayudar a predecir el rendimiento de las aplicaciones para una carga de usuarios más pesada en el futuro. Si la aplicación responde dentro de los parámetros del SLA, dicha prueba se consideraría un componente exitoso en la planificación de la capacidad. Si las métricas de rendimiento registradas durante la prueba están fuera de los parámetros deseables, una prueba de carga puede convertirse en una prueba de esfuerzo a medida que empuja el sistema más allá de su capacidad disponible.

Infraestructura de aplicaciones web de pruebas de estrés

Identificar el punto en el que se producirá un error en cada componente de la infraestructura es una parte fundamental para mantener una aplicación web escalable. Las pruebas de esfuerzo efectivas le permiten aislar cada componente a través de una serie de pruebas diferentes para determinar el punto de falla de ese componente. Tales pruebas pueden incluir:

  • Aislar todo el tráfico a una región geográfica específica.
  • Limitar artificialmente el espacio disponible en disco.
  • Enviar repetidamente una solicitud GET particularmente grande.
  • Limitar el número máximo de conexiones de datos.
  • Descarga de un archivo de imagen grande.
  • Enviar repetidamente un POST intenso que escribe fuertemente en una base de datos.

Cada prueba está diseñada para enfatizar un componente particular de la infraestructura para identificar los puntos de falla, la tasa de fallas y los límites superiores de la capacidad del sistema. Las pruebas de estrés pueden ayudar a identificar los cuellos de botella durante breves cargas intensas de cosas como el marketing viral, el reconocimiento de noticias internacionales y los días pesados de compras en línea, como el Black Friday.

Las diferencias entre las pruebas de carga y las pruebas de esfuerzo

Resumen de LoadView

Una prueba de esfuerzo normalmente maximizará una parte del sistema u otra que eventualmente causa ralentizaciones y luego se bloquea o no responde. Es importante determinar qué componentes del sistema serán los primeros en encontrar problemas durante la prueba. Por este motivo, hay varios componentes que le recomendamos que supervise al realizar una prueba de esfuerzo. Vale la pena señalar que dependiendo de la aplicación, software, o incluso la tecnología que se utiliza en su entorno / sistema, qué métricas mide durante una prueba de esfuerzo podría variar. Sin embargo, la siguiente lista comp

  • Tiempos de respuesta. Tiempo necesario para recibir una respuesta después de enviar una solicitud. Esto es especialmente importante para medir los tiempos de respuesta percibidos por los usuarios
  • Restricciones de hardware. Esto incluye la supervisión del uso de CPU, RAM, E/S de disco. Si los tiempos de respuesta se retrasan o son lentos, estos componentes de hardware podrían ser los posibles culpables.
  • Rendimiento. La cantidad de datos que se envían/reciben durante la duración de la prueba en función de sus niveles de ancho de banda.
  • La base de datos lee y escribe. Si la aplicación utiliza varios sistemas, las pruebas de esfuerzo pueden indicar qué sistema o unidad es el cuello de botella.
  • Abra las conexiones de base de datos. Las bases de datos grandes pueden afectar gravemente al rendimiento, ralentizando los tiempos de respuesta.
  • Contenido de terceros. Las páginas web y las aplicaciones se basan en muchos componentes de terceros. Las pruebas de estrés le mostrarán cuáles pueden afectar el rendimiento de su página o aplicación.

Si no tiene sistemas de supervisión adecuados en el lado del servidor, la plataforma Dotcom-Monitor proporciona una solución de supervisión del contador de rendimiento para una supervisión completa del rendimiento del servidor de extremo a extremo. Estos contadores de rendimiento se instalan directamente en los servidores para supervisar los contadores de rendimiento de Windows, Linux o SNMP (Protocolo simple de administración de redes). Además, también hay una solución para supervisar los contadores de rendimiento personalizados desde sus dispositivos y servidores. Para obtener más información sobre la supervisión del contador de rendimiento, visite nuestra página soluciones de supervisión del contador de rendimiento.

Los problemas con cualquiera de estos elementos podrían manifestarse como:

  • Respuesta lenta del primer paquete.
  • Retrasos sustanciales entre las solicitudes GET/POST y las respuestas.
  • Tiempos de carga de página más largos de lo normal.
  • Tiempo de salida de carga de la página web.
  • Se devuelven códigos de error del servidor.

Si bien estos mismos problemas pueden detectarse inicialmente durante una prueba de carga, la idea detrás de una prueba de carga es simular las cargas esperadas que el sistema debería poder manejar de forma regular. A veces puede ser el caso en el que el sistema experimenta brevemente ralentizaciones mientras se asignan recursos al aumento de la carga, pero en la mayoría de los casos el sistema debe ser capaz de recuperarse de la asignación inicial y reanudar el rendimiento normal bajo una prueba de carga.

Si la prueba de carga continúa detectando problemas, debe echar un vistazo más de cerca a los contadores de rendimiento del sistema para determinar la causa raíz de la ralentización o el error. Esto es cuando una prueba de carga se convierte en una prueba de esfuerzo, ya que la carga causa inesperadamente problemas de rendimiento. Póngase en contacto con nuestro equipo para obtener una demostración de la plataforma LoadView. Un ingeniero de rendimiento le guiará a través de todo el proceso de pruebas de carga y esfuerzo. Desde mostrar cómo crear scripts para escenarios de páginas web o aplicaciones web, hasta configurar e iniciar la prueba, lo guiarán a través de todo el proceso y responderán cualquier pregunta que pueda tener en el camino.

¡Ejecuta una prueba de carga o estrés hoy mismo!

Sin tarjeta de crédito. Sin compromiso. Paga sobre la marcha.