Blog

JMeter DSL, una innovadora herramienta para testing de performance

¿Qué es JMeter DSL? ¿Qué mejoras aporta respecto a JMeter? ¿Cuáles son las nuevas funcionalidades que facilita? Esta contribución open source desarrollada por Abstracta ya es utilizada por usuarios de diferentes partes del mundo, como Estados Unidos, India, Rusia, Ucrania y China, y cada día tiene más descargas. Entérate de todo en este artículo.

Foto de Kelly Sikkema en Unsplash

Hace poco publiqué una nota en la que hablaba sobre la importancia de evaluar la performance de cualquier aplicación, sin excepción y bajo diferentes condiciones. El objetivo es claro y concreto: evitar su colapso, asegurar la correcta experiencia de los usuarios y mejorar la calidad del software.

Sin dudas, una herramienta de gran utilidad para lograr este cometido es JMeter DSL, una innovación que realizamos en Abstracta respecto a JMeter, con algunas mejoras y nuevas funcionalidades.

En primer lugar, voy a explicar qué es JMeter a nivel general, para luego poder entrar en detalles sobre cuáles son las nuevas posibilidades que tenemos ahora con JMeter DSL.

¿Qué es JMeter?

Es una herramienta que permite diseñar y ejecutar tests de performance mediante una interfaz gráfica, sin necesidad de tener conocimientos de programación. Esta característica la hace muy atractiva para muchos usuarios, aunque también tiene algunos inconvenientes asociados.

A medida que empezamos a diseñar planes de pruebas complejos, se hace notoria la complejidad de administrar los mismos con la interfaz provista, trabajar colaborativamente sobre el test plan, visualizar de manera rápida y fácil todo el test plan, lograr velocidad de diseño, entre otros.

Adicionalmente, para equipos de desarrollo, resulta tedioso tener que interactuar con una interfaz fuera del entorno de desarrollo donde se encuentran. Usar JMeter en un entorno de integración continua requiere de pasos adicionales que usualmente no son requeridos con otros tipos de tests. Afortunadamente, muchos de estos problemas son fácilmente resueltos por otras soluciones como Gatling o K6. ¿De qué manera? Mediante el uso de código, el cual tiene propiedades y herramientas desarrolladas que ayudan en todos los aspectos antes mencionados.

Sin embargo, dichas herramientas tienen algunos limitantes: requieren cambiar de lenguaje o aprender programación, tienen algunas funcionalidades pagas, y no cuentan con soporte para algunas funcionalidades que JMeter sí provee. Además, no existe tanto conocimiento y documentación acerca de las mismas.

JMeter provee una API que permite diseñar y correr pruebas desde código. Pero dicha API requiere mucho código para diseñar y correr pruebas simples. Además, se precisan conocimientos avanzados sobre JMeter y su código. En otras palabras, dicha API está pensada para uso interno de la aplicación y no para facilitar el diseño y ejecución de pruebas desde código.

¿Qué es JMeter DSL y cuál es su aporte respecto a esta problemática?

JMeter DSL es una librería desarrollada por Abstracta. Es una capa que simplifica el uso de JMeter mediante código, agregando además algunas funcionalidades que no están disponibles en el mismo. Algunos ejemplos de ello son la ejecución de pruebas en servicios en la nube y la evaluación de resultados de ejecución de las pruebas.

Para ilustrarlo, podemos pensar a JMeter DSL como un adaptador o una extensión. En relación a un equipo de audio, por ejemplo, JMeter DSL sería el control remoto. En otras palabras, la herramienta propone una nueva forma de usar lo mismo (JMeter), que para algunas personas puede llegar a ser más práctico. Esto se da debido a que ahora tienen la posibilidad de obtener beneficios que con la interfaz que tenían hasta ahora no podían, o les resultaba más dificultoso.

JMeter DSL permite usar JMeter desde código de manera sencilla, sin la necesidad de aprender un nuevo lenguaje o incorporar nuevas herramientas. De este modo, amplía la cantidad de usuarios posibles capaces de sacarle provecho a JMeter, permite hacer las pruebas de modo más veloz y más simple y contribuye con el desarrollo de software de calidad.

Específicamente, JMeter DSL permite integrar pruebas de performance en manera continua en los pipelines de desarrollo existentes con más facilidad, promoviendo shift left testing. Además, simplifica la aplicación de conocimientos de ingeniería y desarrollo de software al desarrollo y mantenimiento de pruebas de performance de JMeter.

¿Cómo funciona JMeter DSL?

JMeter DSL, la historia de la más reciente innovación en testing de software de Abstracta
Accede aquí a la Guía de uso de JMeter DSL elaborada por Abstracta.

JMeter DSL brinda un conjunto de métodos que fácilmente se pueden componer, como quien une piezas de lego, para armar un test plan de JMeter.

Con solo una dependencia y un import tenemos disponible los principales componentes que pueden combinarse. A su vez, con ayuda de un IDE, permite una rápida creación y ejecución de un test plan de performance, con documentación embebida, auto completado y otras funcionalidades que proveen los IDES.

Los métodos que provee JMeter DSL simplemente devuelven objetos que permiten armar el test plan de una manera simple y veloz. Y ejecutarlo en un motor embebido de JMeter, o en un servicio de la nube cuando sea necesario, como BlazeMeter, OctoPerf o inclusive con tu propia infraestructura de agentes generadores de carga de JMeter.

Los tests pueden ser fácilmente ejecutados con JUnit u otros frameworks de ejecución de pruebas, lo que los hace fácilmente integrables en pipelines de desarrollo existentes.

No es necesario instalar JMeter ni configurar nada adicional, más allá de las herramientas usuales en un entorno de desarrollo Java.

Ahorra tiempo con JMeter DSL

Roger Abelanda, CTO de Abstracta Inc.

El tiempo es sin dudas uno de nuestros recursos más valiosos, y contar con herramientas que nos permitan optimizar nuestras tareas es de por sí un eslabón importantísimo en nuestro trabajo diario. JMeter DSL permite ahorrar tiempo promoviendo el shift left testing y haciendo las pruebas lo antes posible.

Crear y mantener pruebas de performance con JMeter DSL es mucho más rápido que hacerlo con la interfaz gráfica de JMeter. No solo porque es más fácil de leer y entender todos los componentes en un plan, sino también porque promueve mayor reuso, y reduce tiempo de revisión de documentación, con documentación inline.

Por otro lado, en general, gracias al autocomplete de los IDEs y la facilidad de manejar texto, es mucho más rápido crear un test plan con JMeter DSL que recorrer la interfaz gráfica de JMeter y completar los campos.

¿Tienes alguna sugerencia respecto a JMeter DSL? Tus observaciones son más que valiosas para nuestro equipo. Comparto nuestro repositorio de GitHub para que puedas solicitar lo que consideres necesario o simplemente de utilidad. También poder calificar con estrellas ⭐, a lo cual le prestamos especial atención.

En Abstracta, apostamos a implementar funcionalidades que demuestren una necesidad de parte de los usuarios y con base en estos pedidos se basa mucho los releases que hacemos.



Tenemos muchas ideas en nuestro backlog de cosas que nos parece que podrían ser interesantes implementar, pero preferimos en la mayoría de los casos, esperar a que un usuario reporte la necesidad, evitando sobrecargar la herramienta con funcionalidades que tal vez no sean tan usadas.

Tenemos muchas ideas en nuestro backlog de cosas que nos parece que podrían ser interesantes implementar, pero preferimos en la mayoría de los casos, esperar a que un usuario reporte la necesidad, evitando sobrecargar la herramienta con funcionalidades que tal vez no sean tan usadas.

Esto nos permite priorizar el trabajo y el esfuerzo invertido, documentar la razón de ser de cada componente, e involucrar a la comunidad haciéndola partícipe del desarrollo de la herramienta.

¡Síguenos en LinkedInXFacebookInstagram y Youtube para ser parte de nuestra comunidad y conocer lo último en testing de performance!

131 / 256