Controladores en JMeter: bucle, simple, transacción, módulo, aleatorio

Tabla de contenido:

Anonim

¿Qué es el controlador lógico?

Los controladores lógicos le permiten definir el orden de procesamiento de la solicitud en un hilo. Le permite controlar "cuándo" enviar una solicitud de usuario a un servidor web. Por ejemplo, puede utilizar controladores aleatorios para enviar solicitudes HTTP al servidor de forma aleatoria

Los controladores lógicos determinan el orden en el que se ejecuta la solicitud del usuario.

Algunos controladores lógicos de uso común son los siguientes:

Controlador de grabación:

JMeter puede registrar sus pasos de prueba; un controlador de grabación es un marcador de posición para almacenar estos pasos de grabación.

Controlador simple:

Simple Controller es solo un contenedor para la solicitud del usuario.

Controlador de bucle:

Loop Controller hace que la solicitud del usuario se ejecute un número específico de veces o se ejecute para siempre como se muestra en la figura:

Controlador aleatorio:

Random Controller hace que todas las solicitudes del usuario se ejecuten en orden aleatorio en cada período de ciclo.

Por ejemplo, tiene 3 solicitudes de usuario al sitio web http://www.google.com en el siguiente orden:

  1. Solicitud HTTP
  2. Solicitud de FTP
  3. Solicitud de JDBC

Estas 3 solicitudes deben ejecutarse 5 veces. JMeter enviará un total de 15 solicitudes de usuario al servidor de Google.

En orden secuencial , las solicitudes se envían secuencialmente en el siguiente orden:

Solicitud HTTP -> Solicitud FTP-> Solicitud JDBC

para cada bucle.

En orden aleatorio , las solicitudes se envían de forma aleatoria,

Solicitud FTP -> Solicitud HTTP-> Solicitud JDBC

O

Solicitud JDBC -> Solicitud FTP-> Solicitud HTTP

Para cada bucle.

Controlador de módulo:

El objetivo de Module Controller es agregar modularidad a JMeter.

La idea general es que las aplicaciones web constan de pequeñas unidades de funcionalidad (es decir, iniciar sesión, crear cuenta, cerrar sesión ...). Esta funcionalidad se puede almacenar en Simple Controller como "módulos". El controlador del módulo elegirá qué módulo debe ejecutarse.

Considere el siguiente escenario:

Quieres simular:

  • 50 usuarios cerrando la sesión ,
  • 100 usuarios iniciando sesión
  • 30 usuarios buscan en www.google.com

Puede utilizar JMeter para crear 3 módulos. Cada módulo simula la actividad de cada usuario: inicio de sesión, cierre de sesión y búsqueda.

El controlador del módulo elige qué módulo debe ejecutarse.

Otros controladores importantes:

  • Intercalar controlador: recoge y hace que una de las solicitudes del usuario se ejecute en cada bucle del hilo.
  • Runtime Controller: controla cuánto tiempo se les permite ejecutar a sus hijos.

Por ejemplo, si especificó Runtime Controller 10 segundos, JMeter ejecutará su prueba durante 10 segundos.

  • Controlador de transacciones : mide el tiempo total necesario para finalizar la ejecución de una prueba
  • Incluir controlador: está diseñado para utilizar un plan de prueba externo. Este controlador le permite utilizar múltiples planes de prueba en JMeter. Consulte los detalles en Pruebas de rendimiento de JMeter.

Ejemplo de controlador de lazo

Esta sección muestra instrucciones paso a paso para agregar el controlador de bucle a su plan de prueba de rendimiento actual.

El controlador de bucle hace que los muestreadores se ejecuten un cierto número de veces, además del valor de bucle que especificó para el grupo de subprocesos. Por ejemplo, si tu

  • Agregue una solicitud HTTP a un controlador de bucle con un recuento de bucles 50
  • Configure el recuento de bucles del grupo de subprocesos en 2
  • Luego, JMeter enviará un total de 50 * 2 = 100 solicitudes HTTP.

Esta es la hoja de ruta de este ejemplo:

Paso 1) Configurar el grupo de subprocesos

Nos re-utilizar el Paso 1, 2 en el tutorial Pruebas de Rendimiento de JMeter.

  1. Agregar grupo de subprocesos

Haga clic derecho sobre el plan de pruebas y añadir un nuevo grupo de hilos: Agregar -> Hilos (Usuarios) -> Thread Group

Pero en el panel de control de Thread Group, ingrese Thread Properties de la siguiente manera:

Hará una solicitud de usuario al servidor web google.com y lo ejecutará 2 veces.

  1. Agregar elementos de JMeter

Agregue la solicitud HTTP predeterminada a www.google.com.

  1. Agregar controlador de bucle

Haga clic derecho en Grupo de subprocesos -> Controlador lógico -> Controlador de bucle

Paso 2) Configuración del controlador de bucle

Agregue el valor 50 al campo Loop Count como se muestra a continuación. Hará que una solicitud de usuario al servidor web google.com lo ejecute 50 veces, además del valor de bucle = 2, que especificó para el grupo de subprocesos anterior, por lo que JMeter enviará un total de 2 * 50 = 100 solicitudes HTTP.

Haga clic derecho en Loop Controller, Add -> Sampler -> Solicitud HTTP

Paso 3) Agregar resultados de vista en la tabla

Reutilizamos el Paso 2 en el temporizador para agregar Ver resultados en la tabla

Entonces, el plan de prueba se muestra en la siguiente figura

Paso 4) Ejecute su prueba

Ahora regrese Ver resultados en la tabla, haga clic en el botón Inicio en la barra de menú (Ctrl + R) para ejecutar una prueba

Como se muestra en la figura siguiente, JMeter simula una solicitud de usuario, que se envía 100 veces, al servidor web http://www.google.com/. La prueba se detiene después de que se envíe una solicitud de usuario 100 veces.

Solución de problemas:

  1. Si enfrenta el problema mientras ejecuta el escenario anterior ... haga lo siguiente
  2. Compruebe si se está conectando a Internet a través de un proxy. Si es así, elimine el proxy.
  3. Abra una nueva instancia de Jmeter
  4. Abra ControllerTestPlan.jmx en Jmeter
  5. Haga clic en Grupo de subprocesos -> Ver resultado en la tabla
  6. Ejecuta la prueba