JMeter Thread Groups y su configuración – Guía rápida

0
182

Introducción

En este artículo, veremos la configuración del Thread Group en JMeter y cuál es el propósito de cada opción que podemos usar. Entenderemos qué es un Thread Group y los diferentes tipos.

2. Qué es un Thread Group

Un Thread Group es el punto de partida de cualquier plan de prueba de Jmeter. Es la parte más alta del árbol y todos los elementos de un plan de prueba deben definirse debajo de él. Además de toda la lógica y las muestras de la prueba, un Thread Group también almacena la configuración requerida para la ejecución del script Jmeter.

Hay varios tipos de Thread Group:

  • setUp – Se utiliza para realizar las acciones necesarias antes de que comience la ejecución del Thread Group normal. El comportamiento de los hilos mencionados en Configurar grupo de hilos es exactamente el mismo que el grupo de hilos normal. Puede ser útil, por ejemplo, hacer la parte de inicio de sesión de la prueba, obtener / extraer y establecer request headers, ejecutar scripts de base de datos predefinidos, etc.
  • normal – Utilizado para ejecutar nuestro test con toda su lógica. Va entre los setUp y tearDown thread groups, y puede tener N números Thread Groups normales.
  • tearDown – Se utiliza para realizar las acciones necesarias después de la ejecución del Thread Group normal. Puede ser útil para ejecutar acciones como borrar la base de datos, hacer solicitudes contra ciertos puntos finales para deshacer cambios, etc.

3. Action to be performed after a Sampler hits an error

Esta opción le dice a Jmeter qué hacer si la ejecución encuentra un error porque cuando una muestra falla por algún motivo, o falla alguna afirmación Jmeter le ofrece 5 opciones para manejar la falla de un muestreador, y son «Continuar», «Iniciar siguiente secuencia de thread group», «Detener thread», «Detener prueba» y «Detener prueba ahora».

Por defecto, la opción «Continuar» está seleccionada. Ahora veamos el significado de estas opciones.

1. Continuar: Jmeter ignorará el error, continuará la ejecución y solo el muestreador afectado fallará en el oyente. Normalmente el error sampler se queda en rojo en los informes.

2. Iniciar siguiente Thread Loop: Jmeter ignorará el error y continuará con la ejecución del siguiente thread loop.

3. Detener thread: la ejecución del thread actual se detendrá, los threads restantes se ejecutarán según lo definido.

4. Detener prueba: la ejecución completa de la prueba se detendrá si algún muestreador encuentra un error y procede a crear informes (si están configurados).

5. Detener prueba ahora: la ejecución de la prueba se detendrá abruptamente y todos los muestreadores actualmente activos se interrumpirán para finalizar la ejecución.

4. Thread count

Thread Count define el número de usuarios que desea simular para la ejecución. En Jmeter, observamos cada thread producido como un usuario virtual que abre la conexión a nuestro back-end y comienza a ejecutar solicitudes.

5. Ramp-up period

La aceleración es la cantidad de tiempo que Jmeter debería tomar para obtener todos los hilos enviados para la ejecución. La aceleración debería ser suficiente para evitar una carga de trabajo innecesaria y grande desde el comienzo de la ejecución de la prueba.

Por ejemplo, si el número de threads es 10 y el ramp-up period es de 100 segundos, Jmeter tardará 100 segundos en poner en funcionamiento los 10 threads. El primer thread se enviará el segundo 0 y luego cada thread se nace después de 10 segundos (100/10).

6.Loop count

Usando Loop Count puede especificar el número de veces que ejecutará la prueba dentro del thread group específico. Puede seleccionar la casilla de verificación «forever», seguirá ejecutando el mismo script de prueba en bucle. La única forma de detenerlo es manualmente.

El Loop count se usa con frecuencia con Ramp-up time y el Thread count. Veamos algunos ejemplos:

Escenario 1: : Thread Count = 25, Ramp Up Time = 100 seconds & Loop Count = 1
Cada 4 segundos (100/25) un Thread llegará al servidor. La ejecución comenzará con una solicitud a la vez. La lógica dentro del hilo se ejecutará a tiempo.

Escenario 2 : Thread Count = 25, Ramp Up Time = 100 seconds & Loop Count = 5
En este caso, como podemos ver, la única diferencia es el Loop Count. Entonces, Cada 4 segundos (100/25) 5 Threads llegarán al servidor. Una vez que el primer thread completa la primera ronda de ejecución, comenzará el segundo bucle ejecutando la misma solicitud HTTP. La ejecución dura hasta que los 25 threads ejecuten todas las solicitudes HTTP 5 veces.

7. Scheduler Configuration

Thread Group ofrece la opción de ejecutar su script durante un período de tiempo específico. Una schedule checkbox se encuentra en la parte inferior de la pantalla de una Thread Group, lo que habilitará algunas opciones más. Se puede ver la duración de la ejecución de la prueba, el retraso de inicio, la hora de inicio y la hora de finalización.

Entonces, nos permite configurar una cantidad de tiempo específica como parte de la duración. Jmeter ejecutará el Thread Group durante el tiempo que ha mencionado en la Duración. Después del inicio de la ejecución, Jmeter espera la cantidad exacta de tiempo que ha mencionado en el Startup Delay. Estas 2 opciones anulan la hora de inicio (start time) y la hora de finalización (end time).

8. Delay Thread Creation Until Needed

Antes de la versión 2.8 de JMeter, cuando iba a aumentar 1000 usuarios durante las pruebas de rendimiento, JMeter asignó memoria para todos los threads de inmediato, incluso si tenía un tiempo de aceleración para los usuarios. Esto significaba que incluso si tiene una configuración para incluir a un usuario en la prueba después de 2 horas desde la hora de inicio, todos los recursos necesarios ya estaban asignados para este usuario cuando comenzó el script.

En conclusión, teniendo en cuenta que hay algunos escenarios de prueba con miles y miles de usuarios con una configuración de aceleración, siempre es una buena idea pensar en activar esta opción para facilitar su máquina y asignar menos RAM en un momento específico.

Dejar respuesta

Please enter your comment!
Please enter your name here