Configuración de Azure Load Testing para una carga a gran escala

En este artículo, aprenderá a configurar la prueba de carga para realizar pruebas de carga a gran escala con Azure Load Testing. Azure Load Testing abstrae la complejidad del aprovisionamiento de la infraestructura para simular el tráfico a gran escala. Para escalar horizontalmente una prueba de carga, puede configurar el número de instancias del motor de pruebas en paralelo. Para lograr una distribución de carga óptima, puede supervisar las métricas de estado de la instancia de prueba en el panel de Azure Load Testing.

Requisitos previos

  • Una cuenta de Azure con una suscripción activa. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

  • Un recurso de prueba de carga de Azure existente. Para crear un recurso de prueba de carga de Azure, consulte el inicio rápido Creación y ejecución de una prueba de carga.

Configuración de parámetros de carga para una prueba de carga

Para simular el tráfico de usuario de la aplicación, puede configurar el patrón de carga y el número de usuarios virtuales para los que desea simular la carga. Al ejecutar la prueba de carga en muchas instancias del motor de pruebas en paralelo, Azure Load Testing puede escalar horizontalmente el número de usuarios virtuales que simulan el tráfico a la aplicación. El patrón de carga determina cómo se distribuye la carga durante la prueba de carga. Algunos ejemplos de patrones de carga son carga lineal, escalonada o pico.

Según el tipo de prueba de carga, basada en direcciones URL o basada en JMeter, tiene diferentes opciones para configurar la carga de destino y el patrón de carga. En la tabla siguiente se enumeran las diferencias entre los dos tipos de prueba.

Tipo de prueba Número de usuarios virtuales Modelo de carga
Basado en direcciones URL (básico) Especifique el número de usuarios virtuales de destino en la configuración de prueba de carga. Patrón de carga lineal, basado en el tiempo de aumento y el número de usuarios virtuales.
Basado en direcciones URL (avanzado) Especifique el número de motores de prueba y el número de usuarios virtuales por instancia en la configuración de prueba de carga. Configure el patrón de carga (lineal, paso, pico).
Basado en JMeter Especifique el número de motores de prueba en la configuración de pruebas de carga. Especifique el número de usuarios virtuales en el script de prueba. Configure el patrón de carga en el script de prueba.

Configuración de parámetros de carga para pruebas basadas en direcciones URL

Para especificar los parámetros de carga de una prueba de carga basada en direcciones URL:

  1. En Azure Portal, vaya al recurso de Azure Load Testing.

  2. En el panel de navegación izquierdo, seleccione Pruebas para ver todas las pruebas.

  3. En la lista, seleccione la prueba de carga y, a continuación, seleccione Editar.

    Screenshot that shows the list of load tests and the 'Edit' button.

    Como alternativa, también puede editar la configuración de prueba desde la página de detalles de la prueba. Para ello, seleccione Configurar y,a continuación, seleccione Probar.

  4. En la página Aspectos básicos , asegúrese de seleccionar Habilitar configuración avanzada.

  5. En la página Editar prueba , seleccione la pestaña Cargar .

    En el caso de las pruebas basadas en direcciones URL, puede configurar el número de instancias del motor de pruebas en paralelo y el patrón de carga.

  6. Use el control deslizante Instancias de motor para actualizar el número de instancias del motor de pruebas en paralelo. Como alternativa, escriba el valor de destino en el cuadro de entrada.

    Screenshot of the 'Load' tab on the 'Edit test' pane.

  7. Seleccione el valor de Patrón de carga de la lista.

    Para cada patrón, rellene los valores de configuración correspondientes. El gráfico proporciona una representación visual del patrón de carga y sus parámetros de configuración.

    Screenshot of the 'Load' tab when editing a load test, showing how to configure the load pattern.

Configuración de parámetros de carga para pruebas basadas en JMeter

Para especificar los parámetros de carga de una prueba de carga basada en JMeter:

  1. En Azure Portal, vaya al recurso de Azure Load Testing.

  2. En el panel de navegación izquierdo, seleccione Pruebas para ver todas las pruebas.

  3. En la lista, seleccione la prueba de carga y, a continuación, seleccione Editar.

    Screenshot that shows the list of load tests and the 'Edit' button.

    Como alternativa, también puede editar la configuración de prueba desde la página de detalles de la prueba. Para ello, seleccione Configurar y,a continuación, seleccione Probar.

  4. En la página Editar prueba, seleccione la pestaña Cargar. Use el control deslizante Instancias del motor para actualizar el número de instancias del motor de prueba o escriba el valor directamente en el cuadro de entrada.

    Screenshot of the 'Load' tab on the 'Edit test' pane.

  5. Seleccione Aplicar para modificar la prueba y usar la nueva configuración cuando vuelva a ejecutarla.

Supervisión de métricas de la instancia del motor

Para asegurarse de que las instancias del motor de prueba, por sí mismas no son un cuello de botella de rendimiento, puede supervisar las métricas de recursos de la instancia del motor de pruebas. Un uso elevado de recursos para una instancia de prueba podría influir negativamente en los resultados de la prueba de carga.

Azure Load Testing notifica cuatro métricas de recursos para cada instancia:

  • Porcentaje de CPU.
  • Porcentaje de memoria.
  • Bytes de red por segundo.
  • Número de usuarios virtuales.

Una instancia del motor de prueba se considera correcta si el porcentaje medio de CPU o porcentaje de memoria durante la serie de pruebas permanece por debajo del 75 %.

Para ver las métricas de recursos del motor:

  1. Vaya al recurso Load Testing. En el panel izquierdo, seleccione Pruebas para ver la lista de pruebas de carga.

  2. En la lista, seleccione la prueba de carga para ver la lista de series de pruebas.

  3. En la lista de series de pruebas, seleccione su serie de pruebas.

  4. En el panel de serie de pruebas, seleccione el estado del motor para ver las métricas de recursos del motor.

    Opcionalmente, seleccione una instancia del motor de prueba específica mediante los controles de filtros.

Screenshot that shows the load engine health metrics on the test run dashboard.

Solución de problemas de instancias del motor incorrectas

Si una o varias instancias muestran un uso elevado de recursos, podría afectar a los resultados de la prueba. Para resolver la incidencia, pruebe uno o varios de los pasos siguientes:

  • Reduzca el número de subprocesos (usuarios virtuales) por motor de prueba. Para lograr un número objetivo de usuarios virtuales, puede aumentar el número de instancias del motor para la prueba de carga.

  • Asegúrese de que el script es eficaz, sin código redundante.

  • Si el estado de mantenimiento del motor es desconocido, vuelva a ejecutar la prueba.

Determinación de las solicitudes medias por segundo

El número máximo de solicitudes por segundo (RPS) que Azure Load Testing puede generar para la prueba de carga depende de la latencia de la aplicación y del número de usuarios virtuales (VU). La latencia de la aplicación es el tiempo total desde el envío de una solicitud de aplicación por parte del motor de prueba hasta la recepción de la respuesta. El recuento de usuarios virtuales es el número de solicitudes paralelas que realiza Azure Load Testing en un momento dado.

Para calcular el número de solicitudes por segundo, aplique la fórmula siguiente: RPS = (n.º de VU) * (1/latencia en segundos).

Por ejemplo, si la latencia de la aplicación es de 20 milisegundos (0,02 segundos) y está generando una carga de 2000 VUs, puede lograr unos 100 000 RPS (2000 * 1/0,02 s).

Para lograr un número objetivo de solicitudes por segundo, configure el número total de usuarios virtuales para la prueba de carga.

Nota:

Apache JMeter solo informa de las solicitudes que llegaron al servidor y regresaron, ya sea de forma correcta o no. Si Apache JMeter no puede conectarse a la aplicación, el número real de solicitudes por segundo será inferior al valor máximo. Las posibles causas podrían ser que el servidor está demasiado ocupado para controlar la solicitud o que falta un certificado TLS/SSL. Para diagnosticar problemas de conexión, puede comprobar el gráfico Errores en el panel de pruebas de carga y descargar los archivos de registro de pruebas de carga.

Instancias del motor de prueba y usuarios virtuales

En el script de Apache JMeter, puede especificar el número de subprocesos paralelos. Cada subproceso representa un usuario virtual que accede al punto de conexión de la aplicación. Se recomienda mantener el número de subprocesos de un script por debajo de un máximo de 250.

En Azure Load Testing, las instancias del motor de prueba son responsables de ejecutar el script de Apache JMeter. Todas las instancias del motor de prueba se ejecutan en paralelo. Puede configurar el número de instancias de una prueba de carga.

El número total de usuarios virtuales para una prueba de carga es: usuarios virtuales = (n.º de subprocesos) * (n.º de instancias del motor de prueba).

Para simular un número objetivo de usuarios virtuales, puede configurar los subprocesos paralelos del script de JMeter y las instancias del motor para la prueba de carga en consecuencia. Supervise las métricas del motor de prueba para optimizar el número de instancias.

Por ejemplo, para simular 1000 usuarios virtuales, establezca el número de subprocesos del script de Apache JMeter en 250. A continuación, configure la prueba de carga con cuatro instancias del motor de prueba (es decir, 4 x 250 subprocesos).

La ubicación del recurso de Azure Load Testing determina la ubicación de las instancias del motor de pruebas. Todas las instancias del motor de pruebas en un recurso de Load Testing se hospedan en la misma región de Azure.