Establecimiento de líneas de base para pruebas de carga

Completado

Ahora que ha definido las pruebas de carga y los valores de umbral, se usarán para crear las líneas de base.

Una línea de base es un conjunto de criterios para las métricas que se usa para evaluar si una prueba ha producido un error o se ha realizado correctamente. Por ejemplo, los criterios podrían ser los siguientes:

  • Solicitudes medias por segundo
  • Frecuencia de errores
  • Tiempo de respuesta máximo

A fin de configurar líneas de base para pruebas de carga, deberá hacer lo siguiente:

  1. Defina las líneas de base y los criterios de prueba para los flujos de usuario individuales y la solución general.

  2. Ajuste los umbrales de las ejecuciones normales para comprobar que la aplicación todavía proporciona el rendimiento esperado y no produce ningún error.

  3. Use una línea de base independiente para las pruebas de caos que tolere los picos esperados en las tasas de error y un rendimiento reducido temporal.

Esta actividad es continua y se debe realizar con regularidad. Por ejemplo, debe revisar las líneas de base después de introducir nuevas características o cambiar las SKU de servicio.

Uso de Azure Load Testing para evaluar umbrales

Durante la fase de desarrollo, el rendimiento de los componentes y los requisitos de los recursos a menudo no se conoce claramente. Las pruebas de carga pueden ayudarle a identificar el rendimiento esperado de la solución general y sus componentes, incluido el comportamiento de escalabilidad horizontal. También pueden ayudarle a identificar los umbrales que se esperan para crear la línea de base.

Formule las preguntas siguientes y repita la evaluación periódicamente:

  • ¿Cuánto tiempo tarda en completarse una operación individual, un flujo de usuario o una llamada API?
  • ¿Cuántas solicitudes, operaciones y usuarios simultáneos puede servir un componente por segundo?
  • ¿Cuántos recursos se consumen?
  • ¿Cómo afectan 10, 50 y 100 usuarios simultáneos a la infraestructura subyacente y al servicio de back-end?
  • ¿Cuándo se deben escalar y reducir horizontalmente los componentes?

Las respuestas darán lugar a pruebas y umbrales. Las solicitudes por segundo, el tiempo de respuesta y el porcentaje de error son ejemplos aplicables para los valores de umbral.

Una vez que haya anotado los detalles, use valores para analizar y evaluar el rendimiento de la solución general y sus componentes de forma coherente. Use también la línea de base para identificar el impacto de los cambios y los desfases con respecto al rendimiento esperado.

Al ejecutar las pruebas, es posible que tenga otros requisitos para casos de uso especiales, como un componente defectuoso o un pico de carga. En esos casos, es posible que se esperen mayores tasas de error o solicitudes más bajas por segundo y sean aceptables. Puede tener una línea de base independiente con umbrales ajustados para dar cabida a esas situaciones. Por ejemplo:

  • Escenarios de carga alta en los que se espera y necesita una operación de escalabilidad horizontal. Es posible que haya una degradación temporal del rendimiento hasta que se complete la operación.
  • Experimentos de caos, como parte de una canalización de validación continua. Se puede esperar una tasa de error mayor hasta que las medidas de resistencia empiecen a recuperar automáticamente la aplicación o se realice la conmutación por error a otra región.

Use Azure Load Testing para evaluar cómo funciona el sistema con respecto a los umbrales definidos. El servicio tiene una funcionalidad de criterios de prueba integrada. Es decir, puede especificar criterios que una prueba de carga debe superar.

Puede usar criterios de prueba para implementar diferentes líneas de base. Por ejemplo:

Table that shows sample test criteria.

Puede especificar estos criterios de prueba en JSON y usar la API para agregarlos a la prueba de carga. Este es un ejemplo:

[
    {
        "passFailMetrics": {
            "<guid>": {
                "clientmetric": "requests_per_sec",
                "aggregate": "avg",
                "condition": "<",
                "value": 1200.0,
                "actualValue": 0.0,
                "result": null,
                "action": "continue"
            },
            "<guid>": {
                "clientmetric": "response_time_ms",
                "aggregate": "avg",
                "condition": ">",
                "value": 75.0,
                "actualValue": 0.0,
                "action": "continue"
              },
              "<guid>": {
                "clientmetric": "error",
                "aggregate": "percentage",
                "condition": ">",
                "value": 0.0,
                "actualValue": 0.0,
                "action": "continue"
              }
        }
    }
]

Otro aspecto importante de la validación continua consiste en insertar pruebas que simulan problemas reales. En la unidad siguiente, obtendrá información sobre cómo agregar experimentos de caos al proceso de validación.

Prueba de conocimientos

1.

¿Cuántas líneas de base se necesitan?

2.

¿Una línea de base define el rendimiento que la implementación puede proporcionar?

3.

¿Cuándo es necesario evaluar y actualizar las líneas de base?