Definición de pruebas de carga basadas en flujos de usuario clave

Completado

Las pruebas de carga son una parte importante de la validación continua. Para empezar, debe identificar los flujos de la aplicación. En esta unidad, obtendrá información sobre los flujos de usuario y sistema, por qué son importantes y los criterios de diseño de las pruebas.

¿Qué son los flujos de la aplicación?

Un flujo se compone de interacciones de la aplicación necesarias para completar una tarea.

  • Flujo de usuario

    Estos flujos indican cómo interactúan los usuarios con la aplicación. En el escenario de Contoso Shoes, el proceso de finalización de la compra de artículos es un ejemplo de un flujo de usuario. Tiene estos componentes que participan en la administración del inventario:

    • Aplicación web de front-end
    • Lógica de finalización de la compra en Azure Functions
    • Base de datos de back-end en Azure Cosmos DB

    Desde una perspectiva crítica, esos componentes deben ser altamente disponibles y resistentes a los errores. Por ejemplo, la página web de front-end se debe cargar rápidamente, porque la organización espera un gran número de usuarios simultáneos.

  • Flujo del sistema

    Estos flujos no suelen estar orientados al usuario, pero una interrupción o degradación de los componentes del flujo del sistema puede tener un impacto en la experiencia del usuario. Por ejemplo, una actividad asincrónica que selecciona pedidos de una base de datos y genera etiquetas de envío.

Nota:

La mayoría de las aplicaciones tienen varios flujos. En cada flujo pueden participar varios componentes de la arquitectura. Además, un componente puede aparecer en más de un flujo. Es importante comprender qué flujos se ven afectados cuando se produce un error en un componente.

Definición de una prueba de carga y sus valores de umbral

Una prueba de carga simula el tráfico real para probar el rendimiento de la aplicación. Pero el objetivo no es generar una carga grande para interrumpir el sistema. Ese objetivo se puede lograr mediante pruebas de esfuerzo.

Una prueba de carga puede ayudar a identificar el rendimiento, los límites de rendimiento, el uso de los recursos y el comportamiento de escalado óptimo de los componentes de un flujo de usuario. Las pruebas de carga deben reflejar todos los flujos de usuario y del sistema adecuados. Un buen diseño necesita que se conozca la aplicación. Empiece por formular preguntas como estas:

  • ¿Qué llamadas API se deben realizar?
  • ¿Cuál es la secuencia de llamadas API?
  • ¿Qué datos de prueba se deben usar con las llamadas API?

En función de las respuestas:

  1. Identifique los escenarios clave, las dependencias, el uso esperado, la disponibilidad, el rendimiento y los objetivos de escalabilidad.

  2. Defina un conjunto de valores de umbral medibles para cuantificar el rendimiento esperado de los escenarios clave. Por ejemplo, para un componente de aplicación, puede considerar valores de umbral para el número esperado de inicios de sesión de usuario, solicitudes por segundo de una API y operaciones por segundo de un proceso en segundo plano.

  3. Use los valores de umbral para definir una prueba de carga que genere tráfico realista a fin de probar el rendimiento de la aplicación, validar las operaciones de escalado esperadas y otras actividades relacionadas. Use esos valores de umbral para desarrollar un modelo de estado para la aplicación que abarque tanto las pruebas como la producción.

    En el ejemplo de flujo de proceso de finalización de la compra, podría establecer el umbral de la duración media de carga de la página en cada paso para que sea inferior a 500 milisegundos y admitir hasta 100 usuarios simultáneos.

Con todos los valores de umbral definidos, ya está listo para implementar pruebas de carga. En este módulo se usa Azure Load Testing.

Aunque puede configurar e implementar Azure Load Testing desde Azure Portal, se recomienda encarecidamente un enfoque mediante programación. Use API para implementar, configurar y ejecutar las pruebas de forma automatizada. Este enfoque se describe en la unidad siguiente.

Prueba de conocimientos

1.

¿Todos los flujos de usuario y sistema son igual de importantes?

2.

¿Una interrupción de un componente siempre produce una degradación del servicio?

3.

¿Puede una prueba de carga ayudar a evaluar el rendimiento esperado de un flujo de usuario?