Introducción a las pruebas de rendimiento con JMeter

1. Información general

En este artículo, usaremos Apache JMeter para configurar y ejecutar pruebas de rendimiento.

2. Configuración de JMeter

Vamos a descargar JMeter, descomprimirlo, ir a la carpeta bin y ejecutar el ejecutable (* .bat para Windows y * .sh para Linux / Unix).

A continuación, solo necesitamos agregar esta carpeta a la variable de entorno de ruta para que sea accesible desde la línea de comando.

La versión más estable en el momento de escribir este artículo es la 3.3; podemos consultar la versión más reciente aquí.

3. Creación de scripts de JMeter

Ahora escribamos nuestro primer script de JMeter (un archivo que contiene una descripción técnica de nuestras pruebas).

Esta API es una aplicación SpringBoot simple que expone una API REST.

Actualicemos el plan de prueba uno y cambiemos su nombre primero, luego agreguemos un grupo de subprocesos .

Un Thread Group nos permite conocer el flujo de usuarios y simula cómo interactúan con la aplicación, haga clic derecho en el nombre de nuestro script en la GUI y siga el menú seleccionado:

Ahora nos dirigimos a la parte de configuración del Thread Group , donde especificamos la cantidad de usuarios que realizan solicitudes a nuestra aplicación en paralelo:

Aquí, especificamos parámetros como:

- Nombre: el nombre que queremos darle al grupo de hilos

- El número de subprocesos (usuarios) : el número de usuarios paralelos

- Tiempo de aceleración : tiempo necesario para pasar de 0 al número declarado de usuarios

- Recuento de bucles : número de repeticiones

Agregue una solicitud HTTP, ya que es la que simularemos que proviene de cada uno de los 5 usuarios.

Completemos la información para abordar nuestra API descrita allí como en la imagen a continuación:

Simplemente completamos la dirección del sitio web, el puerto y la ruta específica.

A continuación, simulemos las solicitudes de los usuarios después de agregar un árbol de resultados de vista (use Ver resultados en la tabla si los resultados son una lista de registros) siguiendo el menú " Agregar> Oyente" .

Presione el botón de flecha verde hacia la derecha en la parte superior para ejecutar la prueba y ver los datos de respuesta:

Podemos ver una representación más detallada de la respuesta en la pestaña de resultados de Sampler .

Terminemos agregando una afirmación de duración en la solicitud HTTP , por lo que cada solicitud que dure más de diez milisegundos se considerará una prueba fallida:

Después de volver a ejecutar la prueba, vemos que hay algunos (aquí son 3) usuarios que no pueden obtener las listas de estudiantes en menos de diez milisegundos:

Ahora, guardemos la prueba con la extensión .jmx en la carpeta de recursos de la API.

Hay más elementos disponibles para configurar nuestro archivo de prueba:

  • Solicitud JDBC: útil para enviar una solicitud JDBC (consulta SQL) a una base de datos, antes de usarla necesitamos configurar un elemento de configuración de conexión JDBC
  • Aserción XML: prueba que los datos de la respuesta sean de un documento XML correcto
  • Aserción de tamaño: afirma que la respuesta contiene el número correcto de bytes.
  • Publicador JMS: para publicar mensajes en un destino determinado (tema / cola) siguiendo la especificación J2EE para mensajería

Todos los componentes disponibles se detallan en el manual de usuario.

4. Ejecute las pruebas de JMeter

Hay dos formas de ejecutar las pruebas de JMeter, una de ellas consiste en usar el complemento Maven disponible y la otra con la aplicación JMeter independiente en el modo sin GUI.

En cualquier caso, ambos necesitan saber dónde llegar al script de JMeter que configuramos anteriormente.

4.1. Complemento JMeter Maven

El complemento JMeter Maven es un complemento Maven que brinda la posibilidad de ejecutar pruebas de JMeter como parte de nuestra compilación; Su última versión en este momento es 2.6.0 que es compatible con Apache JMeter 3.3.

Agreguémoslo al pom.xml de nuestro proyecto:

 com.lazerycode.jmeter jmeter-maven-plugin 2.6.0   jmeter-tests  jmeter     ${project.basedir}/src/main/resources ${project.basedir}/src/main/resources  

Después de esto, podemos ejecutar todas nuestras pruebas con mvn verify o solo las de JMeter con mvn jmeter: jmeter ; aquí está la salida de la consola del comando:

Nota: Aquí especificamos el directorio donde se ubican nuestras pruebas en el proyecto, o se elegirá el predeterminado ( $ {project.basedir} / src / test / jmeter ); Asimismo, se configura el directorio de resultados, de lo contrario, el predeterminado será $ {project.basedir} / target / jmeter / results .

La documentación completa del complemento está disponible aquí.

4.2. Modo sin GUI

La otra forma de hacerlo es a través del ejecutable de JMeter, asumiendo que está disponible a través de la línea de comando, podemos hacer esto:

jmeter -Jjmeter.save.saveservice.output_format = xml

-n -t src / main / resources / JMeter.jmx -l src / main / resources / JMeter.jtl

Establecimos XML como formato de salida, que llena el archivo de prueba exacto y el de resultado.

Nota: se recomienda no utilizar el modo GUI para las pruebas de carga, solo para la creación y depuración de pruebas.

5. Conclusión

En este tutorial rápido, hemos configurado Apache JMeter en una aplicación SpringBoot para ejecutar pruebas de rendimiento con un complemento de Maven mientras buscamos prácticamente cómo diseñar una prueba de rendimiento básica.

Como siempre, el código fuente de este artículo se puede encontrar en GitHub.