Controladores lógicos en Jmeter

Controladores lógicos en Jmeter
MIN
05 Ene 2024

En el tutorial anterior, tratamos los muestreadores y los distintos tipos de consultas de muestreo disponibles en JMeter. En este tutorial, veremos los controladores lógicos que personalizan la forma en que se envían las distintas peticiones al servidor.

Controladores lógicos

Los controladores lógicos son elementos del plan de pruebas que se utilizan para ajustar el orden de procesamiento de los muestreadores y otros elementos añadidos como hijos. Los Controladores Lógicos se utilizan principalmente en las peticiones del Muestreador para realizar diversas personalizaciones, como cambiar el orden de su procesamiento, agruparlas como una única transacción o ejecutar las peticiones en un bucle, etc.

>>> Pasos para iniciar un controlador lógico – haz clic con el botón derecho en Grupo de hilos – ve a Añadir – ve a Controladores lógicos – haz clic en los controladores lógicos deseados

Captura de pantalla de las instrucciones de inicio del controlador lógico

¿Por qué necesitamos Controladores Lógicos?

Los scripts de pruebas de rendimiento se utilizan para simular las acciones de usuarios reales. Al igual que un usuario real, realizará múltiples acciones de distintas formas, por ejemplo, realizar un conjunto de operaciones de forma secuencial (p. ej., navegar desde la página de inicio de sesión a la página de inicio), realizar tipos similares de operaciones en bucle (p. ej., leer varios correos electrónicos no leídos), realizar algunas operaciones aleatorias, etc. Para simular estos distintos tipos de acciones, JMeter nos proporciona distintos tipos de controladores lógicos que personalizan el procesamiento de los elementos que contienen.

Veamos ahora los distintos controladores lógicos que proporciona JMeter:

Controlador de la Sección Crítica

Se trata de un controlador recién añadido al sistema JMeter. Garantiza que sólo un hilo a la vez acceda a los elementos esclavos de este controlador.

Controlador ForEach

Este controlador se utiliza para ejecutar peticiones en un bucle en función de los valores de un conjunto de variables relacionadas.

Si el controlador

Utilizando el Controlador If, podemos especificar una condición para que se active o no el elemento hijo que contiene, en función de la condición que debe evaluarse como verdadera o falsa.

Incluir controlador

Include Controller puede utilizarse para proporcionar modularidad en JMeter. Utilizando este controlador podemos añadir un archivo .jmx(fragmento de prueba) externo a nuestro script existente cargando el archivo jmx en el Controlador Incluir.

Controlador de intercalación

El Controlador Intercalar nos permite seleccionar y ejecutar un elemento hijo de entre varios hijos en cada iteración del bucle. Por ejemplo: si tenemos tres muestreadores añadidos como esclavos al Controlador de Intercalación, en la primera iteración se seleccionará la solicitud del primer muestreador, en la siguiente iteración se seleccionará la del siguiente, y así sucesivamente. Cuando se terminan los elementos hijos, la iteración vuelve a empezar desde el primer elemento.

Controlador de bucle

Te permite realizar operaciones especificadas como elementos hijos en un bucle con el valor de iteración especificado en su panel de control.

Módulo Controlador

Utilizando el Controlador de Módulos, podemos volver a aplicar un fragmento de prueba (por ejemplo, un muestreador) a nuestro script seleccionando el módulo en el panel de control del Controlador de Módulos.

Controlador único

El controlador Sólo una vez se utiliza en una situación en la que queremos ejecutar una operación sólo una vez, aunque la operación se ejecute en un bucle.

Controlador aleatorio

Es similar a un controlador aleatorio y selecciona un elemento hijo en cada iteración, pero a diferencia del controlador Intercalar, selecciona el elemento hijo aleatoriamente.

Controlador de Orden Aleatorio

El Controlador de Orden Aleatorio se utiliza para ejecutar cada uno de sus elementos hijos como máximo una vez en orden aleatorio.

Controlador de grabación

Este controlador sirve como lugar donde se graban por defecto los scripts grabados utilizando el Proxy HTTP (consulta nuestro tutorial para obtener más detalles sobre la grabación y reproducción en JMeter).

Controlador de tiempo de ejecución

El controlador de tiempo de ejecución se utiliza para limitar el tiempo de ejecución de sus elementos hijos. Por ejemplo, si especificamos un valor de «Tiempo de ejecución» de 100 segundos, los elementos del controlador de Tiempo de ejecución se ejecutarán durante 100 segundos con tantas iteraciones como sea posible.

Controlador simple

Este controlador es sólo un lugar para agrupar y organizar los distintos elementos del plan de pruebas.

Interruptor Controlador

Este controlador se utiliza para seleccionar un elemento para procesarlo de entre sus múltiples elementos hijos. El elemento no se selecciona en orden secuencial o aleatorio, sino en función del valor del interruptor definido en su panel de control. El valor del interruptor puede ser una variable con un valor evaluado en su elemento índice(posición) o nombre de elemento. Por ejemplo, si en la primera iteración el valor del interruptor se evalúa como «3», entonces se selecciona el cuarto elemento para procesarlo (el valor del índice empieza en 0). Del mismo modo, si el valor de un conmutador se evalúa como un nombre de elemento, se selecciona ese elemento para procesarlo.

Controlador de caudal

El Controlador de Rendimiento se utiliza para controlar el procesamiento de sus elementos hijos en función del número total de ejecuciones o del porcentaje de ejecuciones especificado en su panel de control.

Controlador de transacciones

El controlador de transacciones es uno de los controladores utilizados con más frecuencia en los scripts de JMeter. Sirve para agrupar varias peticiones de muestreador en una sola. El tiempo de respuesta y otras métricas de rendimiento del resultado de la prueba se evalúan para toda la transacción. Por ejemplo, al comprobar el rendimiento de la página de inicio de una aplicación, podemos darnos cuenta de que el lanzamiento de la página de inicio genera muchas peticiones en el backend. Por lo tanto, necesitamos agrupar todas estas peticiones en una única transacción, que es para lo que tenemos el JMeter Transaction Controller. Tras ejecutar el script, podemos ver el tiempo de respuesta total de toda la transacción.

Mientras el controlador

El controlador Mientras se utiliza para activar los elementos hijos que contiene hasta que el valor especificado en su panel de control se evalúe como falso.