HEADER_lecciones_de_software

Guía básica para utilizar JMeter

por Ella Beatriz Acosta Pulgar, el 22 de abril de 2021

Guía básica para JMeter

En el área del testing se crean pruebas funcionales para validar el funcionamiento de las características de un sistema, y pruebas no-funcionales para validar características no relacionadas al funcionamiento, por ejemplo; el estilo de la interfaz, contenido, presencia de imágenes, efectos, rendimiento, seguridad, etc, enfocándose en el área de rendimiento. Adicionalmente, se incluye la instalación y uso de la herramienta JMeter, una de las más utilizadas para ejemplificar los conceptos presentados.

Pruebas De Rendimiento

¿Qué son pruebas de rendimiento?

Con este tipo de pruebas se busca analizar el comportamiento del sistema ante diferentes niveles de carga.

Objetivo de la pruebas de desempeño

A nivel del proyecto el objetivo de las pruebas de desempeño, es determinar qué tan preparado está el aplicativo para ser lanzado a producción, evaluando las siguientes características de desempeño.

 

Prueba de carga

Es una forma de evaluar el comportamiento de cualquier aplicación, cuando se adapta con diferentes cargas (usuarios / tráfico) en palabras simples, la prueba de carga ayudan a comprender cómo funciona un programa (supongamos que un sitio web «abc.com») cuando 20 usuarios están usando la plataforma en el mismo momento, se aplica el nivel de carga típico al que está sometido el sistema, se identifican cuellos de botellas, principalmente se deben simular las transacciones críticas.

Prueba de estrés

Las pruebas de estrés son un método para analizar lo que podría ocurrir en determinados escenarios, por lo tanto no se utiliza como una herramienta de predicción.

Prueba de estabilidad

El sistema es sometido a cargas robustas, (menores a las de estrés) la carga se debe mantener durante un tiempo prolongado y se evalúa la estabilidad del sistema mientras soporta la carga.

Prueba de picos

El sistema es sometido a cargas robustas, la carga debe ser aplicada en un tiempo muy reducido, se evalúa el comportamiento del sistema ante subidas y bajadas repentinas.

Instructivo sobre mi Primer Jmeter

Una vez definido los conceptos básicos, se procede a realizar un instructivo o tutorial de una prueba en Jmeter.

Instalación

Pasos para la instalación

  1. Descargar Jmeter y luego se guarda en la ruta que se desea.
  2. Ejecutar el archivo JMeter.bat

Ejemplo de un Primer test

Pantalla con la que se inicia en JMeter

Guía básica para JMeter 1

En el frame izquierdo se ve los elementos que componen el plan de pruebas.

Guía básica para JMeter 2

En el frame derecho, se ve el detalle o la configuración del elemento que se está seleccionando en el frame izquierdo.

Guía básica para utilizar JMeter 3

Test Plan: Es como un contenedor que almacena los elementos necesarios para ejecutar una prueba. Es la raíz de nuestro script.

Agregar un Thread Group

Un Thread Group es el conjunto de usuarios virtuales, (threads) que serán enviados al servicio que se está probando. Son semejantes a varios robots de Selenium.

Se da click derecho en Test Plan y se selecciona Add//Threads (Users)//Thread Group

Guía básica JMeter 4
Guía básica para JMeter 5

Una vez agregado, la prueba debe verse así.

Guía básica para JMeter 6

Thread Properties

Number of Threads (Users)

Es el total de usuarios virtuales que quiere enviar durante la prueba.

Ramp-up Period (in seconds)

Es una rampa que determina en cuánto tiempo se ha enviado el total de usuarios virtuales al servicio que se está probando, ejemplo: si establecemos un Number of Threads de 100 y un Ramp-up

Period: 

de 60 segundos, entonces se estará enviando 100/60=1.66667 usuarios virtuales por segundo y al ajustar un tiempo de ejecución de 60 segundos, se han enviado los 100.

Loop Count: 

Es la cantidad de ciclos en los que se puede estar enviando el Thread Group actual.

Action to be taken after a Sampler error

Continue:

Continuar aunque aparezca algún error durante la ejecución de algún Thread.

Start Next Thread Loop:

Inicia el siguiente loop (ciclo) si encuentra un error durante la ejecución del loop actual.

Stop Thread:

Detiene la ejecución del loop actual y no inicia los demás ciclos, todo el Thread Group se detiene.

Stop Test:

Se detiene la prueba en total, los threads que estén en ejecución se completan antes de detener la prueba.

Stop Test Now:

Se detiene la prueba de forma inmediata, es un stop más agresivo y no espera a los threads en ejecución.

Agregar un Sampler

Es semejante al runner de un test con JUnit, Recordar que un runner es aquel que toma un ensamble (conjunto de configuraciones, features, utilidades) que contiene pruebas y lo ejecuta generando un reporte de lo que ha hecho. En este caso, el sampler es el que va a tomar los threads y los va a enviar hacia el aplicativo deseado, para agregar un sampler (en este caso un HTTP Request) se da clic derecho en el Thread Group agregado y continúan la ruta Add//Sampler//HTTP Request.

Guía básica para JMeter_7

Con el Sampler agregado, se procede a seleccionar y a escribir el nombre o la IP del servidor que se va ha probar: www.blazedemo.com

Guía básica para JMeter_8

Dado que la prueba se va a realizar en el home page, se agrega un / a la casilla Path:

JMeter_9


Agregar un Timer

Los temporizadores le dan realismo a las pruebas, ya que los threads no deberían ejecutar acciones de forma inmediata, como clics con diferencias de milisegundos, cuando se agrega un temporizador se agrega un delay a la ejecución del test (la ubicación del timer en el test plan afecta de diferentes formas)


Constant Timer

Para agregar un temporizador constante al HTTP Request, se da clic derecho sobre el sampler y se selecciona Add//Timer//Constant Timer.

Guía básica para JMeter_10

Agregando el constant timer al sampler, se aplica un delay a cada thread que se envíe al servidor, probando que el valor del delay puede ser cambiado en la casilla señalada.

Fuía básica para JMeter_11

Uniform Random Timer


El temporizador agrega un delay constante + un delay variable, para añadir un uniform random timer, se selecciona Add//Timer//Uniform Random Timer.

Guía básica para JMeter_12

Los campos que se deben configurar están señalados en la imagen.

Guía básica para jmeter_13

El Random Delay Maximum (cuadro naranja) es el valor máximo de delay variable que se agregará a la ejecución de cada thread, y el Constant Delay Offset (cuadro azul) es el valor de delay constante que tendrá la ejecución de cada thread, Para este caso sólo se agregó el valor aleatorio, por lo que cada thread tendrá un delay entre 0 y 100 ms.

Agregar un Assertion

Con los asserts validamos que se están recibiendo las respuestas que se esperan por parte del servidor, también sirven para validar lo que está siendo dirigido a la página correcta. Para agregar un assert, se da clic derecho en el sampler y se selecciona Add//Assertions/Response Assertion.

Guía básica para JMeter_14

En el Response Assertion, se identifica lo siguiente en el área de opciones Field to Test (campo del responsable del servidor)

  • Text Response: se valida el contenido que recibe en las etiquetas body del código html.
  • URL Sampled: se valida la URL a la que se dirige.
  • Response Code: en él se valida el número de respuesta recibida. 200 si está OK, 404 si no fue encontrado, 500 si hay un error en el servidor, 302 se redirige a otra página, etc.
  • Response Message: Validar el mensaje que el servidor envía en el Response, en el caso de recibir un 200 en el Response Code, el Response Message sería un OK por parte del servidor.
  • Response Headers: se valida los headers del Response.
  • Document (text): se analiza metadata o el contenido de un documento, como un archivo de Word, powerpoint, txt, etc.

Guía básica para JMeter_15

En el área de Pattern Matching Rules, identificamos lo siguiente:

Contains:

Utiliza expresiones regulares (RegEx) validar que el texto que se recibe por parte del servidor contiene el texto que se indica en el assert.

Matches:

Usa expresiones regulares (RegEx) es similar a Contains, con la diferencia de que el texto que se recibe por parte del servidor debe ser completamente igual al que se indica en el assert.

Equals:

Usa texto plano, su validación es igual a la de Matches.

Substring:

Usa texto plano, su validación es igual a la de Contains.

Guía básica para JMeter_16

En el área Patterns to Test, se agrega el texto que se quiere validar, en ese caso se agrega la palabra Welcome, junto a la configuración del Response Assertion presentada en la imagen.

Guía básica para JMeter_17

Agregar un Listener

Un Listener es aquel que está pendiente de lo que sucede durante la ejecución de una prueba, para agregar un View Results Tree, se selecciona Add//Listener//View Results Tree.

JMeter_18

 

Un View Results Tree, permite ver los resultados del Test como si estuviera siendo ejecutado en modo debug, en el cuadro naranja se especifica un archivo donde se quiere que JMeter guarde los resultados, o se especifica un archivo que contenga resultados de pruebas anteriores.


Guía básica para JMeter_19

Presionando el botón Configure, aparecerá una ventana emergente donde se selecciona los datos de la ejecución que se quiere almacenar.

Guía básica para JMeter_20

Visualización de Resultados

El Test Plan debería tener la siguiente estructura.

Guía básica para JMeter_21

En el View Results Tree, se puede observar el resultado de las ejecuciones; cada vez que se presiona el botón señalado por el cuadro azul, se ejecuta el Test Plan, en ese caso el botón señalado se presionó dos veces, donde en la primera ejecución se alteró el valor del Assertion para que falle (el assert esperaba un mensaje que contenga WelcomeAAA) y en la segunda ejecución se corrigió el valor esperado en el assert para que la prueba no falle.

JMeter_22

Para observar un error se expande el resultado del HTTP Request fallido y se da clic en la opción Response Assertion, el mensaje que se recibe indica que acciones tomar.

Guía básica para JMeter_23

Instalación del PerfMon Listener en JMeter

Instalación de Plugins Manager

Con la herramienta Plugins Manager es más fácil gestionar los plugins de JMeter, para descargarlo ingrese al siguiente link y haga clic en el texto señalado por el cuadro rojo:                                  https://jmeter-plugins.org/wiki/PluginsManager/

Guía básica para JMeter_24

Cuando el jar esté descargado, agregarlo en la ruta lib/ext de JMeter.

Guía básica para JMeter_25

Si tiene JMeter abierto, se cierra y se vuelve a abrir, diríjase al menú y seleccione la lista Options.

Guía básica para JMeter_26

Si aparece la opción mostrada, es porque JMeter reconoce e integró el plugin.

Instalación del plugin Standard Set en JMeter

Abrir el Plugins Manager.

Guía básica para JMeter_26

Guía básica para JMeter_27


Buscar el Standard Set seleccionarlo, y hacer clic sobre el botón ‘Apply Changes and Restart JMeter’

Guía básica para JMeter_28

Cuando JMeter se reinicie, tendrá disponibles nuevas opciones para armar sus pruebas de rendimiento, en ese caso el que se usará es el listener PerfMon Metrics Collector. Este recibirá los datos enviados por el PerfMon Server Agent y los verificará o guardará.

Guía básica para JMeter_29

 

Nuevo llamado a la acción

Temas:Desarrollo de Software

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal