Pruebas de carga con BlazeMeter

  • por Thomas Hepner

El propósito del testing de software es aumentar la confianza que se tiene sobre la solución que se ha desarrollado, atendiendo cada uno de sus elementos específicos y tomando en consideración aquellos indicadores clave para el usuario y/o el cliente. Sin embargo, nunca se puede tener una confianza del 100% sobre la eficiencia y eficacia del producto construido, por lo que es importante darse cuenta de qué tests hay que hacer para entregar una buena noción de cumplimiento de los requisitos del software.

¿Cómo garantizar que la plataforma desarrollada aguanta el nivel de usuarios que exige el negocio? Una forma es a través de tests de estrés, que buscan descubrir con qué cantidad de usuarios la aplicación se cae o deja de funcionar correctamente. Una herramienta útil para hacer este tipo de pruebas es Siege. Otra forma, de la cual hablaremos más en detalle ahora, es a través de pruebas de carga, que consisten en estudiar el comportamiento del sistema ante distintos escenarios de demanda.

Un test de carga consiste en "atacar" una aplicación web o móvil con una cantidad determinada de usuarios e ir observando el comportamiento de ciertos indicadores. En el caso de una aplicación web, es interesante observar su desempeño en términos de requests por segundo, el tiempo de respuesta, la tasa de hits por segundo, el porcentaje de errores, etc. Hacer un test de carga permite obtener información valiosísima y encontrar cuellos de botella en transacciones claves del funcionamiento de un software.

Existen varios SaaS (Software as a Service) que permiten realizar tests de carga a aplicaciones, entre los cuales destacan Blitz.io, Loader.io, y Blazemeter. En Nnodes estuvimos realizando testing de carga para uno de nuestros proyectos, y encontramos que Blazemeter ofrece un servicio muy completo y customizable. Se basa en la ejecución de instancias del software JMeter, de Apache, y permite realizar pruebas de carga en la nube como se harían en un computador personal con JMeter.

Básicamente, Blazemeter permite construir una prueba de tipo JMeter, para luego ejecutarla desde la nube y mostrar sus resultados de forma más atractiva, informativa y rápida que otras plataformas. Ofrece un nivel de detalle de la prueba bastante alto, además de integrarse con plataformas de monitoreo como New Relic o proveer webhooks para agregarlo a una herramienta de integración continua, como TravisCI o Teamcity. Esto último es de gran ayuda, ya que se puede configurar que, ante un nuevo deploy de la aplicación, se corra un test de carga para poder garantizar que la nueva versión cumple con los estándares de escalabilidad y disponibilidad establecidos.

Otra herramienta útil de Blazemeter es su complemento para Google Chrome, que permite grabar un caso de uso de la aplicación para después usarla en un test de carga. 

Se puede ver un video para aprender a usarlo a continuación: