Temporizadores Jmeter: constante, aleatorio gaussiano, uniforme (ejemplo)

Tabla de contenido:

Anonim

¿Qué son los temporizadores?

De forma predeterminada, JMeter envía la solicitud sin hacer una pausa entre cada solicitud. En ese caso, JMeter podría abrumar a su servidor de prueba al realizar demasiadas solicitudes en un corto período de tiempo.

Imagine que envía miles de solicitudes a un servidor web bajo prueba en unos pocos segundos. ¡Esto es lo que pasa!

Los temporizadores permiten que JMeter se demore entre cada solicitud que realiza un hilo. Un temporizador puede resolver el problema de sobrecarga del servidor .

Además, en la vida real, los visitantes no llegan a un sitio web todos al mismo tiempo, sino en diferentes intervalos de tiempo. Entonces, Timer ayudará a imitar el comportamiento en tiempo real.

En este tutorial, aprenderá

  • Temporizador constante
  • Temporizador aleatorio gaussiano
  • Temporizador aleatorio uniforme
  • Temporizador BeanShell
  • Temporizador BSF
  • Temporizador JSR223
  • Cómo utilizar el temporizador constante

A continuación se muestran algunos tipos comunes de temporizadores en JMeter

Temporizador constante:

El temporizador constante retrasa cada solicitud de usuario durante la misma cantidad de tiempo.

Temporizador aleatorio gaussiano:

El temporizador aleatorio gaussiano retrasa cada solicitud de usuario durante un período de tiempo aleatorio .

Parámetros:

Atributo Descripción
Nombre Nombre descriptivo de este temporizador que se muestra en el árbol
Desviaciones (milisegundos) Un parámetro de la función de distribución gaussiana
Compensación de retardo constante (milisegundos) Valor adicional en milisegundos

Entonces, el retraso total se describe como la siguiente figura:

Temporizador aleatorio uniforme:

El temporizador aleatorio uniforme retrasa cada solicitud de usuario durante un período de tiempo aleatorio.

Parámetros:

Atributo

Descripción

Nombre

Nombre descriptivo de este temporizador que se muestra en el árbol

Máximo de retardo aleatorio

Número máximo aleatorio de milisegundos para retrasar.

Compensación de retardo constante (milisegundos)

Valor adicional en milisegundos

El retraso total es la suma del valor aleatorio y el valor de compensación.

Temporizador BeanShell

El temporizador de BeanShell se puede utilizar para generar un tiempo de retraso entre cada solicitud del usuario.

Temporizador BSF

El temporizador BSF se puede utilizar para generar un retraso entre cada solicitud de usuario utilizando un lenguaje de programación BSF.

Temporizador JSR223

El temporizador JSR223 se puede utilizar para generar un retraso entre cada solicitud de usuario utilizando un lenguaje de scripting JSR223

Cómo utilizar el temporizador constante

En este ejemplo, utilizará Constant Timer para establecer un retraso fijo entre las solicitudes de los usuarios a google.com.

Comencemos con un script de prueba simple

  1. JMeter crea una solicitud de usuario a http://www.google.com 100 veces
  2. El retraso entre cada solicitud de usuario es de 5000 ms

Aquí está la hoja de ruta para este ejemplo práctico:

Condición previa:

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

Paso 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

En el panel de control de Thread Group, ingrese Thread Properties de la siguiente manera

Esta configuración permite a JMeter crear una solicitud de usuario a http://www.google.com en 100 veces

Paso 2) Agrega elementos de JMeter

  • Agregar solicitud HTTP predeterminada
  • Agregar solicitud HTTP

Paso 3) Agregar un temporizador constante

Haga clic con el botón derecho en Grupo de subprocesos -> Temporizador -> Temporizador constante

Configuración de Thread Delay de 5000 milisegundos

Paso 4) Agregar resultados de vista en la tabla

Ver resultados en tabla muestra el resultado de la prueba en formato de tabla.

Haga clic derecho en Agregar -> Oyente -> Ver resultado en la tabla

Ver resultados en la tabla se muestra como la siguiente figura

Paso 5) Ejecute su prueba

Cuando esté listo para ejecutar una prueba, haga clic en el botón Ejecutar en la barra de menú, o presione la tecla Ctrl + R

Este es el resultado de esta prueba

Por ejemplo, en la figura anterior, analicemos la Muestra 2

  • La hora de inicio es 22: 05: 01.866
  • El tiempo de muestreo de la muestra 2 es 172 ms
  • Temporizador constante : 5000 ms (según la configuración)
  • La hora de finalización de esta muestra es = 22: 05: 01.866 + 172 + 5000 = 22: 05: 07.038

Entonces, la Muestra 3 debe comenzar a la hora 22: 05: 07.039 (como se muestra en la figura anterior)

El retraso de cada muestra es de 5000 ms.

Si cambia el temporizador constante a cero , verá que el resultado cambia

Analicemos la Muestra 1

  • La hora de inicio es 22: 17: 39.141
  • El tiempo de muestreo de la muestra 2 es 370 ms
  • Temporizador constante : 0 ms (según la configuración)
  • La hora de finalización de esta muestra es = 22: 17: 39.141+ 370 + 0 = 22: 17: 39.511

Por lo tanto, la muestra 2 debe comenzar a las 22:17: 39.512 (se muestra en la figura anterior)

Solución de problemas:

Si enfrenta el problema mientras ejecuta el escenario anterior ... haga lo siguiente

  1. Compruebe si se está conectando a Internet a través de un proxy. Si es así, elimine el proxy.
  2. Abra una nueva instancia de JMeter
  3. Abra el TimerTestPlan.jmx en Jmeter
  4. Haga doble clic en Grupo de subprocesos -> Ver resultado en la tabla
  5. Ejecuta la prueba