Blog

JMeter Correlation Recorder 2.5: Una aproximación a la nueva versión del plugin

Descubre cómo la nueva versión del plugin Correlation Recorder de JMeter puede ayudarte a hacer la correlación de valores dinámicos más simple y a reducir los errores en tus pruebas de performance. 

Imagen ilustrativa - JMeter Correlation Recorder 2.5: Una aproximación a la nueva versión del plugin

Los equipos de pruebas de performance que utilizan JMeter enfrentan en su día a día un gran número de desafíos, uno de ellos es la correlación de valores dinámicos al automatizar un flujo. Este proceso complejo requiere atención al detalle y tiempo para lograr resultados precisos.

El grado de dificultad se hace más evidente cuando es necesario revisar cada solicitud para verificar que todos los reemplazos se realizaron correctamente o si se omitió alguna parametrización que pueda causar un fallo, especialmente en flujos extensos.

Por esta razón, aparece el Correlation Recorder o Automatic Correlation Recorder (ACR), como comúnmente se le conoce. Este plugin de JMeter, que actualmente ha lanzado su versión 2.5, propone variantes que simplifican el proceso de correlación a través de diferentes métodos.

En este artículo, profundizamos en las facilidades que brinda el plugin y lo que puede aportar al integrar su uso en las actividades diarias. No nos proponemos realizar una guía de uso, ya que existen recursos disponibles, como la guía del usuario o la de instalación proporcionada por BlazeMeter Labs.

¡Te invitamos a explorar nuestros servicios personalizados de pruebas de performance!

Imagen: Guía de uso de JMeter Correlation Recorder

Facilidades de Correlation Recorder 2.5 

Como primer punto destacado, sobre todo al momento de comenzar a utilizar la herramienta, podemos observar que el Correlation Recorder ofrece una plantilla para llevar a cabo el proceso de grabación y correlación en cualquiera de los modos. 

Recomendamos ampliamente su uso en este sentido, ya que contiene todos los elementos necesarios para desarrollarlo de manera sencilla y exitosa.

Vista de la plantilla del Correlation Recorder cargada en JMeter
Vista de la plantilla del Correlation Recorder cargada en JMeter

En esta plantilla, aparecen por defecto filtros generales para ignorar el tráfico extra que se genera durante las grabaciones, lo cual es sumamente útil cuando se trata de optimizar tiempo. 

Dichos filtros pueden usarse como están o personalizarlos en función de lo que se graba, y también se pueden incluir nuevos.

A día de hoy, el Correlation Recorder ofrece 3 modos principales en los que se puede realizar la vinculación de los valores dinámicos:

  1. Mediante herencia.
  2. Comparando automáticamente y detectando variables. 
  3. A través de plantillas existentes.

Explorando cada método, podemos evaluar su viabilidad en los escenarios que se presentan, escogiendo la alternativa más adecuada para cada situación.

Vinculación de los valores dinámicos

  1. Mediante herencia
Imagen ilustrativa: Correlación mediante herencia (Legacy Correlation)

La correlación mediante herencia o Legacy Correlation (en inglés) consiste en configurar un conjunto de reglas propio, determinado a partir del conocimiento del flujo, así como de la identificación previa de los valores dinámicos que necesitan correlacionarse.

Es el modo más similar a la correlación manual que solemos utilizar quienes automatizamos flujos empleando JMeter. Se necesita determinar las expresiones regulares tanto de extracción como de reemplazo y volver a grabar para verificar que el proceso tuvo lugar acertadamente.

Compartimos una tabla con algunos ejemplos reales de expresiones regulares de reemplazo y extracción:

Expresión regular de extracciónExpresión regular de reemplazo
1_wpnonce=([a-zA-Z0-9]*)’_wpnonce=([a-zA-Z0-9]*)
2name=”execution” value=”(.*?)”execution=([^&]+)

En la última versión del plugin, se facilita el proceso de extracción y reemplazo en formato .JSON permitiendo correlacionar valores de forma más eficiente en datos estructurados.

Aunque esto era posible anteriormente empleando las expresiones regulares para ese propósito, ahora el uso de extractores de tipo JSON simplifica la captura de información específica de manera sencilla y directa.

Al analizar más detenidamente la correlación mediante herencia, vemos que requiere la elaboración de expresiones regulares de reemplazo que a veces son iguales, similares o diferentes a las de extracción. Esto implica una inversión inicial de tiempo que requiere configurar un conjunto de reglas, en escenarios en los cuales pueden no ser reutilizables. 

Lo cual podría ocurrir si se presenta, por ejemplo, alguno de los siguientes casos:

  • Una aplicación cambia con frecuencia su estructura o la forma en que se generan los valores dinámicos.
  • Los valores dinámicos son únicos para un escenario de prueba determinado.
  • Las reglas configuradas son altamente personalizadas y específicas en un caso particular.
Vista de la configuración de reglas y el modo Legacy habilitado antes de hacer una segunda grabación para correlacionar un flujo de ejemplo
Vista de la configuración de reglas y el modo Legacy habilitado antes de hacer una segunda grabación para correlacionar un flujo de ejemplo.

En este tipo de escenarios, si hiciéramos la automatización del flujo de manera manual, es muy probable que debamos grabar con JMeter en más de una oportunidad para explorar en profundidad los detalles y particularidades del mismo. El proceso puede llevar a la introducción errores que suelen causar muchas molestias (especialmente en flujos extensos).

En nuestra experiencia, incluso en circunstancias donde a priori parecería ser más rápida la automatización del flujo de manera manual, puede resultar beneficioso explorar el plugin y la correlación mediante herencia, ya que disminuye la probabilidad de cometer errores y nos puede ayudar a resolver algunos escenarios complejos.

Además, si tomamos en cuenta que permite correlacionar flujos cuyas peticiones inicialmente no suelen presentar fallos, pero que podrían fallar al intentar su reproducción para múltiples usuarios, esta opción se perfila aún más como una alternativa atractiva a tener en cuenta.

Inicialmente, la vinculación de los valores dinámicos mediante herencia era el único modo en que funcionaba el plugin, pero luego evolucionó y se incorporaron otros dos que surgen precisamente para reducir tiempo y esfuerzo. 

A continuación, describimos nuevas formas de llevar esto adelante, las cuales necesitan una única grabación para funcionar y tienen la particularidad de generar sugerencias de correlación solo si las peticiones fallan.

  1. Comparando automáticamente y detectando variables

Para correlacionar utilizando la comparación automática y detectar las variables, es necesario reproducir el flujo grabado inicialmente, identificar las peticiones que fallan y presentar sugerencias para lograr que funcionen.

Compartimos una captura de pantalla con las sugerencias generadas y listas para aplicar en un flujo de ejemplo:

Vista de las sugerencias generadas y listas para aplicar en un flujo

Una vez aplicadas las sugerencias, la correlación se genera de forma automática y se puede verificar dentro del plan de pruebas que se extraen y reemplazan los valores necesarios, y el flujo funciona sin errores.

  1. A través de plantillas existentes

En el caso de la correlación empleando plantillas existentes, se trata de conjuntos de reglas previamente definidas que se utilizan para corregir también peticiones que fallan a través de sugerencias aplicables.

Las plantillas pueden haber sido guardadas de forma local, compartidas por la comunidad o agregadas por BlazeMeter. Estas últimas son estructuradas tomando en cuenta buenas prácticas y, siguiendo las instrucciones en el plugin, puede hacerse lo mismo para las demás.

Compartimos una captura de pantalla de las plantillas disponibles para emplear en la correlación de un flujo de ejemplo:

Captura de pantalla de las plantillas disponibles para emplear en la correlación de un flujo

Inicialmente, BlazeMeter proporcionó algunas plantillas para ciertos tipos de aplicaciones, con la perspectiva de que la comunidad incorpore sus propias contribuciones y así se incremente la lista de opciones disponibles.

Estas plantillas se cargan desde la nube y su nivel de accesibilidad dependerá en gran medida del tipo de suscripción a la plataforma con la que se cuente.

El proceso de aplicación es bastante similar al descrito en el modo anterior. Luego, solo resta comprobar que el funcionamiento sea adecuado.

En los modos automáticos, es crucial aplicar solo las sugerencias requeridas para que las peticiones funcionen y no todas las que pueden aparecer. De este modo, evitamos agregar peso innecesario al flujo y consumo excesivo de memoria.

En resumen

Imagen ilustrativa: Nueva versión del plugin Correlation Recorder de JMeter

La evolución del Correlation Recorder hacia su versión 2.5 representa un avance significativo en la automatización de flujos de trabajo en JMeter, en busca de lograr pruebas de performance más eficientes y menos tediosas.

Su capacidad para simplificar y agilizar la correlación de valores dinámicos, minimizando los errores y reduciendo el tiempo de inversión en configuraciones manuales lo coloca como un complemento esencial.
Mediante este artículo, no pretendemos evangelizar, pero sí traer luz sobre sus potencialidades. Como todo producto en desarrollo, tiene margen para la mejora y a medida que la comunidad que lo usa crezca, habrá más retroalimentación y espacio para que esto suceda.

Si al avanzar en la lectura, descubres que quieres seguir profundizando sobre la temática, puedes realizar este curso de BlazeMeter University, donde ayudan a comprender todo el contenido y abordan ejemplos prácticos.


¿Necesitas apoyo con pruebas de performance? 

Con más de 15 años de experiencia y presencia global, en Abstracta, ayudamos desde startups hasta empresas Fortune 500 a mejorar significativamente sus niveles de performance.

Explora nuestros servicios personalizados y contáctanos para agendar una reunión y explorar cómo podemos apoyarte para hacer crecer tu negocio.

¡Síguenos en LinkedIn, X, Facebook, Instagram y YouTube para ser parte de nuestra comunidad!


Artículos recomendados

Modelo de la pirámide de automatización para pruebas de performance

¿Cómo realizar pruebas de performance para aplicaciones web?

¿Cómo crear pruebas de performance con JMeter DSL a partir de scripts de Selenium?

244 / 253