¿Qué es Azure Load Testing?

Azure Load Testing es un servicio de prueba de carga totalmente administrado que permite generar una carga a gran escala. El servicio simula el tráfico de las aplicaciones, independientemente del lugar en que se hospeden. Los desarrolladores, evaluadores e ingenieros de control de calidad (QA) pueden usarlo para optimizar el rendimiento, la escalabilidad o la capacidad de las aplicaciones.

Cree rápidamente una prueba de carga para la aplicación web mediante una dirección URL y sin conocimientos previos de las herramientas de prueba. Azure Load Testing abstrae la complejidad y la infraestructura para ejecutar una prueba de carga a gran escala.

Para escenarios de prueba de carga más avanzados, puede crear una prueba de carga mediante la reutilización de un script de prueba existente de Apache JMeter, una popular herramienta de carga y rendimiento de código abierto. Por ejemplo, el plan de pruebas puede constar de varias solicitudes de aplicación, de llamadas a puntos de conexión no HTTP o del uso de parámetros y datos de entrada para que la prueba sea más dinámica.

Si su aplicación está hospedada en Azure, Azure Load Testing recopila métricas detalladas de recursos que le ayudarán a identificar cuellos de botella de rendimiento en los componentes de la aplicación de Azure.

Para capturar las regresiones anticipadas del rendimiento de la aplicación, agregue la prueba de carga en el flujo de trabajo de integración continua e implementación continua (CI/CD). Aproveche los criterios de error de prueba para definir y validar los requisitos de calidad de la aplicación.

Azure Load Testing le permite probar puntos de conexión de la aplicación privados o aplicaciones que hospeda en el entorno local. Para obtener más información, consulte las situaciones para implementar Azure Load Testing en una red virtual.

En el diagrama siguiente se muestra una introducción a la arquitectura de Azure Load Testing.

Diagram that shows the Azure Load Testing architecture.

Nota:

En esta imagen de introducción se muestra la forma en que Azure Load Testing usa Azure Monitor para capturar métricas para los componentes de la aplicación. Obtenga más información sobre los tipos de recursos de Azure admitidos.

Obtenga más información sobre los conceptos clave de Azure Load Testing.

Escenarios de uso

Azure Load Testing usa Apache JMeter y admite una amplia gama de tipos de aplicaciones y protocolos de comunicación. En la lista siguiente se proporcionan ejemplos de tipos de punto de conexión o aplicaciones admitidos:

  • Aplicaciones web, mediante HTTP o HTTPS
  • API de REST
  • Bases de datos mediante JDBC
  • Puntos de conexión basados en TCP

Al usar complementos de JMeter en el script de prueba, puede cargar más tipos de aplicación.

Con la experiencia de prueba rápida, puede probar un único punto de conexión HTTP basado en URL. Al cargar un script de JMeter, puede usar todos los protocolos de comunicación compatibles con JMeter.

Actualmente, Azure Load Testing no admite otros marcos de pruebas que Apache JMeter.

Identificación de cuellos de botella de rendimiento mediante pruebas de carga a gran escala

Los problemas de rendimiento a menudo permanecen sin detectar hasta que una aplicación está en situaciones de carga. Puede iniciar una prueba de carga a gran escala en Azure Portal para saber con anticipación cómo se comporta una aplicación bajo esfuerzo. Mientras se ejecuta la prueba, el panel de Azure Load Testing proporciona una actualización directa de las métricas del cliente y del servidor.

Cuando finaliza la prueba de carga, se puede usar el panel para analizar los resultados de las pruebas e identificar cuellos de botella de rendimiento. En el caso de las aplicaciones hospedadas en Azure, el panel muestra métricas de recursos detalladas de los componentes de la aplicación de Azure. Comience con un tutorial para identificar cuellos de botella de rendimiento para aplicaciones hospedadas en Azure.

Azure Load Testing mantiene un historial de ejecuciones de pruebas y permite comparar visualmente varias ejecuciones para detectar regresiones de rendimiento a lo largo del tiempo.

También puede descargar los resultados de las pruebas para su análisis en una herramienta de terceros.

Habilitación de pruebas de carga automatizadas

Azure Load Testing se puede integrar en una canalización de CI/CD en puntos significativos durante el ciclo de vida de desarrollo. Por ejemplo, se puede ejecutar automáticamente una prueba de carga al final de cada sprint o en un entorno de ensayo para validar la compilación de una versión candidata para lanzamiento.

Empiece a agregar pruebas de carga al flujo de trabajo de CI/CD para identificar rápidamente la degradación del rendimiento de la aplicación en carga.

En la configuración de prueba, especifique criterios de error de prueba para detectar el rendimiento de la aplicación o las regresiones de estabilidad al principio del ciclo de desarrollo. Por ejemplo, obtenga una alerta cuando el tiempo promedio de respuesta o el número de errores superen un umbral específico.

Azure Load Testing detendrá automáticamente cualquier prueba de carga automatizada como respuesta a determinadas condiciones de error. Alternativamente, también puede usar la escucha AutoStop en su script de Apache JMeter. La detención automática es una protección contra errores de pruebas, lo supone mayores costos, por ejemplo, debido a que la dirección URL de un punto de conexión no se ha configurado correctamente. Descubra cómo puede configurar la parada automática para su prueba de carga.

Azure Load Testing se puede desencadenar desde flujos de trabajo de Azure Pipelines o Acciones de GitHub.

Funcionamiento de Azure Load Testing

Azure Load Testing usa Apache JMeter para ejecutar pruebas de carga. Puede usar complementos de Apache JMeter desde https://jmeter-plugins.org o cargar el código de su propio complemento. Azure Load Testing admite todos los protocolos de comunicación que son compatibles con JMeter. Por ejemplo, para realizar una prueba de carga a una conexión de base de datos o una cola de mensajes. Obtenga más información sobre la funcionalidad de Apache JMeter compatible.

Los motores de prueba de Azure Load Testing abstraen la infraestructura necesaria para ejecutar una prueba de carga a gran escala. Cada instancia de motor de prueba ejecuta el script de JMeter para simular que muchos usuarios virtuales acceden simultáneamente a los puntos de conexión de la aplicación. Al crear una prueba de carga basada en una dirección URL (prueba rápida), Azure Load Testing genera automáticamente un script de prueba de JMeter. Para escalar horizontalmente la prueba de carga, puede configurar el número de motores de prueba.

Puede hospedar la aplicación bajo carga en cualquier lugar: en Azure, en el entorno local o en otras nubes. Para ejecutar una prueba de carga para servicios sin ningún punto de conexión público, implemente Azure Load Testing en una red virtual.

Durante la prueba de carga, Azure Load Testing 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.

Azure Load Testing incorpora automáticamente procedimientos recomendados para las redes de Azure, con el fin de ayudarle a tener la certeza de que las pruebas se ejecutan de forma segura y confiable. 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.

El servicio cifra automáticamente todos los datos almacenados en el recurso de prueba de carga con claves administradas por Microsoft (claves administradas por el servicio). Por ejemplo, estos datos incluyen el script de Apache JMeter, los archivos de configuración y mucho más. Como alternativa, también puede configurar el servicio para que use claves administradas por el cliente.

Residencia de datos en la región

Azure Load Testing no almacena ni procesa datos de cliente fuera de la región donde esté implementada la instancia de servicio.

Pasos siguientes

Empiece a usar Azure Load Testing: