Gatling es una herramienta opensource excelente para pruebas de performance, pero no ofrece la posibilidad de tener ningún resultado de cómo va la prueba durante la ejecución, hay que esperar a que termine para poder ver el reporte. En este post voy a resumir una forma muy fácil de cómo tener live results con Gatling gracias al uso de Taurus, otra herramienta opensource para performance.
Creo que desde que la comencé a utilizar Gatling pasó a ser mi favorita. De las cosas que más destaco, es que las pruebas se codifican (lo destaco porque esto fue algo que nunca me gustó en JMeter, la necesidad de tener que usar un modelo gráfico, y que los scripts se guarden en xml). Otro aspecto muy bueno es la calidad de los reportes que genera, muy completos y vistosos.
Las principales desventajas de Gatling son dos:
- No se puede distribuir la carga (no con las funcionalidades por defecto, estamos evaluando alternativas).
- No muestra monitorización en vivo, o sea, mientras se ejecuta la prueba, no tenemos información de cómo va todo.
Veremos cómo atacar el segundo punto, gracias al uso de otra herramienta opensource llamada Taurus (de Blazemeter).
Taurus es una herramienta que permite especificar una prueba de performance en un archivo yml, de manera muy simple. Luego, utiliza distintas herramientas opensource para ejecutar (JMeter, Gatling, y tantas más). Es ideal para tener pruebas de performance en un esquema de CI/CD, versionando archivos muy simples donde uno especifica las URLs a las cuales pegarle, los criterios de aceptación y la concurrencia que se desea generar. Cuando lo que se quiere automatizar es un poco complejo, se puede preparar el script en JMeter o Gatling (o en otras herramientas) y simplemente indicar que se use ese archivo ya hecho.
Taurus tiene una consola muy simple que permite visualizar cómo va la prueba. Además, se puede utilizar el parámetro -report que hace que se envíen los datos a Blazemeter y se pueda ver en vivo el reporte en Blazemeter mientras se ejecuta la prueba. Estas funcionalidades son las que nos permiten resolver la limitante de Gatling.
Primero, necesitamos instalar Taurus.
Si querés ver información de la integración de Taurus y Gatling, mirá este artículo de la documentación.
El manual sobre el formato de scripting de Taurus está acá y las opciones para usar Taurus por línea de comandos están acá.
En tu proyecto Gatling deberías hacer un archivo muy similar a este:
Hace falta ajustar la ruta al script y el nombre de la simulación. Luego, para ejecutar simplemente correr este comando:
bzt taurusgatling.yml -report
De esa forma, tendremos esta monitorización en vivo, que nos permitirá ver cómo va la prueba (tiempos de respuesta, fallos, hits, etc.):
Además, gracias al flag -report podremos ver el reporte en vivo en Blazemeter (para esto no es necesario tener ni siquiera una cuenta en Blazemeter, pero si tuvieras, se puede agregar tu APIKEY al yml y entonces cada ejecución te quedará guardada asociada a tu cuenta).
Cada vez hay menos excusas para usar Gatling en todo proyecto de pruebas de performance 🙂