Introducción a Gatling

1. Información general

Gatling es una herramienta de prueba de carga que viene con un excelente soporte del protocolo HTTP , lo que la convierte en una muy buena opción para probar la carga de cualquier servidor HTTP .

Esta guía rápida le mostrará cómo configurar un escenario simple para probar la carga de un servidor HTTP .

Los scripts de simulación de Gatling están escritos en Scala , pero no te preocupes, la herramienta viene a ayudarnos con una GUI que nos permite registrar el escenario. Una vez que hayamos terminado de grabar el escenario, la GUI crea el script Scala que representa la simulación.

Después de ejecutar la simulación, tenemos informes HTML listos para presentar .

Por último, pero no menos importante, la arquitectura de Gatling es asincrónica . Este tipo de arquitectura nos permite implementar usuarios virtuales como mensajes en lugar de hilos dedicados, lo que los hace muy económicos en recursos. Por lo tanto, ejecutar miles de usuarios virtuales simultáneos no es un problema.

Sin embargo, también vale la pena señalar que el motor central es en realidad independiente del protocolo , por lo que es perfectamente posible implementar soporte para otros protocolos. Por ejemplo, Gatling actualmente también incluye soporte JMS .

2. Crear un proyecto usando el arquetipo

Aunque podemos obtener paquetes de Gatling como .zip , elegimos usar el Arquetipo Maven de Gatling . Esto nos permite integrar Gatling y ejecutarlo en un IDE y facilitar el mantenimiento del proyecto en un sistema de control de versiones. Tenga cuidado ya que Gatling requiere un JDK8 .

Desde la línea de comando, escriba:

mvn archetype:generate

Luego, cuando se le solicite:

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains):

Tipo:

gatling

Entonces deberías ver:

Choose archetype: 1: remote -> io.gatling.highcharts:gatling-highcharts-maven-archetype (gatling-highcharts-maven-archetype)

Tipo :

1

para seleccionar el arquetipo, luego seleccione la versión a usar (elija la última versión).

Seleccione el groupId , artifactId , la versión y el nombre del paquete para las clases antes de confirmar la creación del arquetipo.

Termine importando el arquetipo en un IDE, por ejemplo, en Scala IDE (basado en Eclipse) o en IntelliJ IDEA.

3. Definir un escenario

Antes de lanzar la grabadora, necesitamos definir un escenario . Será una representación de lo que realmente sucede cuando los usuarios navegan por una aplicación web.

En este tutorial, usaremos la aplicación proporcionada por el equipo de Gatling como ejemplo y alojada en la URL //computer-database.gatling.io.

Nuestro escenario simple podría ser:

  • Un usuario llega a la aplicación.
  • El usuario busca 'amstrad'.
  • El usuario abre uno de los modelos relacionados.
  • El usuario vuelve a la página de inicio.
  • El usuario recorre las páginas.

4. Configuración de la grabadora

En primer lugar, inicie la clase Recorder desde el IDE. Una vez iniciada, la GUI le permite configurar cómo se registrarán las solicitudes y respuestas. Elija las siguientes opciones:

  • 8000 como puerto de escucha
  • paquete org.baeldung.simulation
  • Nombre de la clase RecordedSimulation
  • ¿Seguir redireccionamientos? comprobado
  • Referentes automáticos? comprobado
  • Se seleccionó la primera estrategia de filtro de la lista negra
  • . * \. css , . * \. js y . * \. ico en los filtros de la lista negra

Ahora tenemos que configurar nuestro navegador para usar el puerto definido ( 8000 ) elegido durante la configuración. Este es el puerto al que debe conectarse nuestro navegador para que el registrador pueda capturar nuestra navegación.

A continuación se explica cómo hacerlo con Firefox, abra la configuración avanzada del navegador, luego vaya al panel Red y actualice la configuración de conexión:

5. Grabación del escenario

Ahora que todo está configurado podemos registrar el escenario que hemos definido anteriormente. Los pasos son los siguientes:

  1. Inicie la grabación haciendo clic en el botón 'Iniciar'
  2. Vaya al sitio web: //computer-database.gatling.io
  3. Busque modelos con 'amstrad' en su nombre
  4. Seleccione 'Amstrad CPC 6128'
  5. Volver a la página principal
  6. Repite varias veces las páginas del modelo haciendo clic en el botón Siguiente
  7. Haga clic en el botón 'Detener y guardar'

La simulación se generará en el paquete org.baeldung definido durante la configuración con el nombre RecordedSimulation.scala

6. Ejecute una simulación con Maven

Para ejecutar nuestra simulación grabada, necesitamos actualizar nuestro pom.xml :

 io.gatling gatling-maven-plugin 2.2.4   test execute  true    

Esto nos permitió ejecutar la simulación en la fase de prueba. Para comenzar la prueba, simplemente ejecute:

mvn test

Cuando finalice la simulación, la consola mostrará la ruta a los informes HTML.

Nota: se usa la configuración verdadera porque usaremos Scala con maven, esta bandera asegurará que no terminemos compilando nuestra simulación dos veces. Más detalles están disponibles en los documentos de Gatling.

7. Revisión del resultado

Si abrimos index.html en la ubicación sugerida, los informes se ven así:

8. Conclusión

En este tutorial hemos explorado las pruebas de carga de un servidor HTTP con Gatling. Las herramientas nos permiten grabar una simulación basada en un escenario definido con la ayuda de una interfaz GUI. Una vez finalizada la grabación, podemos iniciar nuestra prueba. El informe de la prueba estará en forma de CV HTML.

Para construir nuestro ejemplo, hemos optado por utilizar un arquetipo de maven. Esto nos ayuda a integrar Gatling y ejecutarlo en un IDE y facilita el mantenimiento del proyecto en un sistema de control de versiones.

El código de ejemplo se puede encontrar en el proyecto GitHub.