Pruebas de carga sobre una aplicación web en Azure.

Hace unas semanas comenzamos a realizar pruebas de carga en el proyecto en el que actualmente trabajo y os quiero compartir las experiencias y pensamientos que he sacado de todo esto.







Empecemos por el principio, ¿que son las pruebas de carga?



Las pruebas de carga son el tipo de pruebas de rendimiento más sencillas. Estas se realizan para comprobar como se comporta una aplicación en determinadas situaciones, como una cantidad alta de peticiones de algún tipo. La mayoría de las veces tienden a "simular" una serie de usuarios concurrentes que nos darán el comportamiento real de nuestra aplicación una vez está puesta en producción.



¿Cual es el primer paso?



El primer paso que debemos de dar para realizar unas pruebas de carga fiables es saber el grado de madurez de nuestra aplicación. Es completamente absurdo el realizar pruebas de carga antes de prácticamente haber terminado o en algún punto en el que la aplicación está todavía verde, ya que los resultados no nos darán las métricas reales y si nos basamos en métricas equivocadas, el rendimiento puede verse afectado gravemente.



En este caso os voy a hablar de las pruebas de carga realizadas en un entorno Microsoft y con herramientas de la misma compañía, más concretamente Visual Studio.



¿Que es lo más eficiente económica y estructuralmente?



Lo más eficiente para la realización de las pruebas de carga es que se lancen en un entorno desplegado, no desde nuestra propia red. Al ser un entorno de Microsoft, el despliegue se realiza en Azure, por lo tanto, tendremos la ventaja de saber que el rendimiento que obtenemos es casi calcado al que tengamos en producción. Otro punto fuerte es que no tendremos que invertir en infraestructura física, ya que Azure nos proporcionará el entorno en la nube para poder lanzar nuestras pruebas.



¿Como se realizan en Visual Studio?



Como estamos trabajando en un entorno de Microsoft, habitualmente estaremos trabajando con Visual Studio, por lo tanto lo más sencillo es realizar las pruebas de carga a través de VS Load Testing, Las pruebas de carga las creamos con un simple proyecto de webtest en el que iremos grabando los pasos que queremos realizar y después parametrizar en base a nuestras necesidades cada paso o prueba.



Una vez que tengamos nuestras pruebas configuradas, "grabadas" y parametrizadas, tendremos que instalar unos "test agent" y un "test controller" que desembocaran en un repositorio de resultados en el que poder consultar y recopilar todos los datos que vamos generando.



Si lo que queremos es pasar las pruebas en Azure directamente y no pasarlas en un entorno montado en Azure, tendremos que conectarnos a una cuenta en linea de Visual Studio Team Explorer. Después seleccionaremos el proyecto de equipo donde queramos ejecutar esas pruebas (añadiendo previamente el TFS al que conectarnos) y como último paso ejecutar la prueba con Visual Studio Online.





Una vez que la prueba funcione y pase correctamente podremos ver con detalle el informe de resultados y las gráficas que nos darán los datos exactos del funcionamiento de nuestra aplicación:





Las pruebas de carga son una ayuda muy importante para determinar como se comportará nuestra aplicación en la red con una serie de usuarios y sobre todo detectar prematuramente un posible error de saturación que conlleve una caída del sistema que nos pueda causar graves daños económicos y de imagen de cara al cliente final.

0 Comentarios