ICM / azuretitle_li=cloud / Azure Load Testing

Azure Load Testing

2 diciembre 2022 | Vlad Erokhin

Pruebas de carga

Hoy hablaremos de las pruebas de carga (de inglés “load testing”). Es uno de los tipos de pruebas de software cuyo objetivo principal es simular la carga creada por un gran número de usuarios u operaciones. El objetivo de estas pruebas es encontrar los valores límite del rendimiento del software en los que su funcionamiento se vuelve inestable.

Por ejemplo, puede crear una página web, una tienda online, un portal corporativo, etc. (para simplificar llamémoslo “producto”) y en condiciones de prueba, es decir, en condiciones de un número limitado de usuarios, el producto funcionará correctamente: rápidamente y sin fallos. Y ahora imaginemos que el número de usuarios empieza a crecer, utilizan diferentes módulos de nuestro producto simultáneamente, y además utilizan el producto en diferentes momentos, y en el Black Friday la afluencia de usuarios se hace simplemente enorme.

¿Cómo se comportará nuestro producto en caso de funcionamiento prolongado o de sobrecarga? ¿Es el producto escalable? ¿Qué cuellos de botella se detectan y cómo se pueden solucionar? Y aquí no nos interesan los valores críticos a partir de los cuales el producto deja de funcionar del todo (aunque esas pruebas también son importantes), sino determinar la calidad del rendimiento del producto bajo ciertas cargas durante un determinado periodo de tiempo. Esto es prueba de carga.

No es tan crítico para nuestro servicio y producto si algún módulo deja de funcionar (podemos reiniciarlo), pero ¿qué pasa si la integridad de la base de datos se ve comprometida en condiciones de alta carga? Puede ser difícil restablecer rápidamente el funcionamiento del producto, por lo que no hay que descuidar las pruebas de carga.

Azure Load Testing

Azure Load Testing es un servicio de pruebas de carga totalmente gestionado para los servicios de Azure. Los módulos de Azure Load Testing ejecutan un script de Apache JMeter para simular que varios usuarios virtuales acceden simultáneamente a los puntos finales de la aplicación.

Durante la prueba de carga, el servicio recopila las siguientes métricas de recursos y las muestra en un panel:

  • Las métricas del cliente proporcionan los detalles notificados por el motor de prueba. Estos detalles incluyen el número de usuarios virtuales, el tiempo de respuesta de la solicitud o el número de solicitudes por segundo.
  • Las métricas del servidor proporcionan información sobre los componentes de la aplicación de Azure. Azure Load Testing se integra con Azure Monitor, incluido Application Insights y Container Insights, para capturar detalles de los servicios de Azure. En función del tipo de servicio, hay diferentes métricas disponibles. Por ejemplo, las métricas pueden ser para el número de lecturas de una base de datos, el tipo de respuestas HTTP o el consumo de recursos de contenedor.

Las pruebas de carga se detienen automáticamente si los puntos de conexión de la aplicación o los componentes de Azure inician solicitudes de limitación. En pocas palabras, la prueba se detiene si aparecen errores en el lado de cualquier componente de Azure.

Las principales características del servicio son:

  • Cree rápidamente una prueba de carga para una aplicación web utilizando una URL y sin conocimientos previos de herramientas de prueba. Azure Load Testing abstrae la complejidad y la infraestructura para realizar una prueba de carga a gran escala.
  • Puede utilizar cualquier script de JMeter y conectarlo a una prueba de carga.
  • Medición de las métricas, tanto del lado del cliente como del lado del servidor, como se ha mencionado anteriormente.
  • Incorpore las pruebas de carga a los flujos de trabajo de DevOps para detectar y bloquear las regresiones de rendimiento en una fase temprana del ciclo de vida del desarrollo.
  • Compatibilidad con un gran número de tipos de recursos de Azure para realizar pruebas.

Por lo tanto, si está utilizando la infraestructura de Azure, no debe olvidarse de las pruebas de carga de Azure. Emular la carga de sus servicios le costará mucho menos que el tiempo de inactividad provocado por la actividad real de los usuarios, que no ha previsto de antemano.