Realizando pruebas de estrés con locust

En nuestra empresa nos tomamos muy en serio las pruebas de software, entre más casos tengas en cuenta, menos posibilidades de fallos habrá en el producto final y eso se traduce en alegría para los clientes. Hay que probar todo bajo el principio de que en ciertas circunstancias “Todo el Software esta roto”.

En esta semana hemos estado haciendo pruebas de carga concurrente para “Cassandra”, uno de nuestro proyectos, principalmente nos centramos en cuantos usuarios soportaba el servidor realizando tareas comunes al mismo tiempo.

Existen varios framework de pruebas muy buenos e interesantes, hoy les vengo hablar de locust, que según su web oficial “es una herramienta de prueba de carga de usuario distribuida y fácil de usar”. Está escrito en python y destaca por su sencillez y robustez, además al estar basado en eventos es mucho mas rápido que otros frameworks de pruebas basados en hilos, en principio fue desarrollado para probar aplicaciones web, pero puedes probar casi cualquier cosa, incluso usando otros lenguajes de programación. Si utilizas Unix, es muy probable que tengas instalado Python 2.7, o 3.x, pues no necesitas nada mas es compatible con esas versiones y se instala con pip:

pip install locustio

Luego escribes tus pruebas en un script, las cuales puedes separar por usuario y definir diferente flujos que quieres que sigan tus instancias de prueba, como podría ser registrarse, crear un objeto, editar, borrar. Así tus pruebas se acercaran más a la realidad. Puedes empezar usando estos ejemplos.

Para que tengan una idea rápida, para hacer test de uno de tus home page puedes hacer algo como:

Listo puedes lanzar el test ejecutando el script y pasando algunos parámetros de configuración como el host.

locust -f stressTest.py --host=http://example.com

Esto te levantará un servidor local en el puerto 8089, donde podrás lanzar tu test especificando la cantidad de usuarios y su separación por segundos para realizar las pruebas, tiene una interfaz bien cuidada con algunos gráficos, informes de errores e incluso puedes exportar a CSV.

Como ven es una herramienta muy fácil de usar y que puede ahorrarnos mucho tiempo, solo debemos concentrarnos en escribir buenos test para tener los mejores resultados.

Si tienes alguna aplicación que necesite pruebas al detalle, desarrollo completo o parcial recuerda que podemos ayudarte, ponte en contacto desde nuestra web.

Hiran.

Mail: hiran@alturasoluciones.com