Definición de pruebas de carga basadas en flujos de usuario clave
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 de flujo del sistema puede afectar a la experiencia del usuario. Por ejemplo, un flujo del sistema puede ser una actividad asincrónica que recoge 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:
Identifique escenarios y dependencias clave y establezca objetivos para el uso esperado, la disponibilidad, el rendimiento y la escalabilidad.
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.
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 restauración, podría establecer un umbral para la duración media de carga de página para cada paso que sea inferior a 500 milisegundos y admitir hasta 100 usuarios simultáneos.
Ahora que se definen todos los valores de umbral, puede 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.