gatling tutorial getting started with gatling load testing
Este tutorial en video de Gatling proporciona una revisión completa de Gatling que incluye características, pasos de instalación y ejemplos del uso de Gatling Simulation Recorder:
Gatling es un marco de pruebas de código abierto basado en Scala. Está ganando mucha popularidad en estos días con más de 3 millones de descargas en los últimos 3 años.
Está disponible como una variante de código abierto y empresarial llamada Gatling Frontline con más integraciones y apoyo del equipo de Gatling. Pero todos los casos de uso prácticos se pueden trabajar con la edición comunitaria de Gatling, que es gratuita y de código abierto.
Lo que vas a aprender:
Video tutorial de Gatling
Veamos los pasos necesarios para comenzar con Gatling. También cubriremos algunas de las características importantes de Gatling como parte de este tutorial.
Aquí hay un video tutorial sobre la introducción de Gatling:
Instalación
Gatling se puede instalar de 2 formas diferentes. Esto se puede explicar de la siguiente manera:
#1) Usando Gatling como una herramienta independiente, simplemente puede instalar el instalador / aplicación, usando el Gatling oficial sitio web y siga las instrucciones de instalación.
Tenga en cuenta que la carpeta zip instalada contiene archivos de shell y por lotes, lo que hace que Gatling sea adecuado para ser utilizado en diferentes sistemas operativos como: Windows, MacOS, Linux / Unix, etc.
El instalador no es más que una grabadora de scripts Gatling basada en Java, que registra las acciones del usuario a través del navegador en la herramienta y que luego podría convertirse en un script o escenario que necesita cargarse y probarse. Veremos esto en detalle en las próximas secciones.
#2) Otra forma de instalar / usar Gatling es usándolo como un paquete a través de Maven / Gradle o mediante las herramientas de construcción de Scala.
Un punto importante a tener en cuenta aquí es que los scripts de Gatling están todos basados en Scala, por lo tanto, la creación de un proyecto basado en Scala podría usar la biblioteca Gatling, que puede ser importada por cualquier herramienta de compilación como Maven / Gradle o SBT.
Características de Gatling
Estos son los siguientes:
# 1) Arquitectura asincrónica e hilos ligeros
Gatling tiene una arquitectura avanzada basada en el kit de herramientas Akka y es completamente asincrónica. Esto le da una ventaja en comparación con otras herramientas de prueba de rendimiento como JMeter, donde cada hilo corresponde a un solo usuario.
Aquí, un solo hilo puede simular múltiples usuarios ya que tiene una arquitectura de mensajería a través del modelo Actor.
En pocas palabras, una prueba de Gatling puede manejar una cantidad de usuarios concurrentes por máquina en comparación con otras herramientas como Jmeter y, por lo tanto, resulta en un ahorro considerable en CPU y RAM.
Lectura recomendada => Modelo de actor y arquitectura asincrónica de Gatling
# 2) El lenguaje específico del dominio hace que las pruebas sean legibles
Los scripts de Gatling están escritos en Scala y tienen un DSL amigable que hace que los scripts sean altamente legibles y menos propensos a errores. Para obtener más detalles sobre Gatling DSL, consulte aquí .
# 3) Soporte de protocolo agnóstico
Gatling admite una amplia variedad de protocolos, incluidos HTTP, HTTPS y sockets web. También tiene extensiones para realizar pruebas de carga de consultas / scripts SQL.
# 4) Informes y afirmaciones
Gatling proporciona soporte listo para usar para crear informes HTML detallados para los escenarios que se ejecutan y también tiene capacidades para aplicar afirmaciones en las solicitudes individuales en escenarios: Por ejemplo, Tiempos de respuesta, validación de contenido JSON, etc.
# 5) Grabador de pruebas amigable basado en GUI
Gatling viene con un registrador de prueba gráfico fácil de usar que puede generar un script de simulación al registrar la actividad del usuario o las acciones del usuario en un navegador web. Los scripts generados son scripts basados en Scala que podrían ejecutarse en el futuro y pueden modificarse según los requisitos.
Aplicación en prueba y grabación de guiones de muestra
Para crear una simulación de muestra, usaremos Aplicación alojada proporcionada oficialmente por Gatling
Usaremos la grabadora de simulación de Gatling para comenzar a crear cargas y realizar pruebas de rendimiento. Antes de continuar, analicemos el escenario en el que queremos cargar la prueba.
El escenario es un caso de uso que estamos intentando cargar. Lo que esto significa esencialmente que queremos imitar la acción de un usuario en un escenario o conjunto de pasos que deben ponerse a prueba.
Por ejemplo, Supongamos que un usuario accede a cualquier sitio web de comercio electrónico como Amazon.com y busca un producto, lo agrega al carrito y finalmente realiza el pago con la información de pago.
Toda esta acción del usuario es un escenario único que contiene pasos individuales como
- Navegando al sitio web Amazon.com.
- Esperando a que se cargue la página.
- Búsqueda de un producto a través de la barra de búsqueda de productos.
- Añadiendo el producto al carrito.
- Ir al carrito y pagar con el producto.
- Realización del pago.
Para probar la carga de este escenario completo, desde la perspectiva del sistema o del servidor, debemos comprender que no es más que una colección o una serie de llamadas a la API que se realizan al servidor backend, y eso es lo que queremos en la prueba de rendimiento.
Para este ejemplo, usaremos el siguiente escenario en la aplicación alojada en Gatling:
#1) Navegar a Aplicación alojada de Gatling .
#2) Haga clic en 'Agregar una nueva computadora'.
#3) Seleccione el nombre de la computadora como Apple y el nombre de la empresa como 'Apple Inc' en el menú desplegable como se muestra en la imagen de abajo.
#4) Haga clic en 'Crear esta computadora' después de ingresar los detalles.
Configurar Gatling Recorder y grabar el primer script
En esta sección, discutiremos cómo configurar el registrador de prueba Gatling para crear una simulación para el escenario que hemos discutido en la sección anterior.
Usaremos la grabadora de simulación Gatling, que está en una forma muy simple, un proxy HTTP; debe estar familiarizado con otras herramientas de grabación HTTP como Fiddler o el proxy Http de Chrome, etc. Por lo tanto, la grabadora Gatling es similar a las características adicionales de convertir el grabación en un script de simulación de prueba.
Veamos primero cómo configurar la grabadora Gatling:
#1) Una vez que la carpeta zip de Gatling esté instalada, simplemente descomprima la carpeta en la ubicación donde desea que se instale Gatling.
mejor bloqueador de ventanas emergentes gratuito de cromo
#2) Después de este paso, necesitamos establecer 2 variables de entorno llamadas - GATLING_HOME (para el directorio de inicio de Gatling) y GATLING_CONF (para la ubicación de la carpeta de configuración de Gatling).
Dependiendo del tipo de sistema operativo (es decir, Windows o Mac o Linux), establezca estas variables de entorno con los siguientes valores:
GATLING_HOME = {directorio-de-instalación-gatling}
Ejemplo:
|_+_|GATLINE_CONF = {directorio-de-instalación-gatling} / conf
Ejemplo:
|_+_|Una vez que las variables están configuradas para validarse, simplemente puede presionar en la terminal el comando: exportar | agarre 'GATLING' y la salida debe mostrar las 2 variables de entorno que acabamos de configurar.
#3) Una vez configuradas estas variables de entorno, debemos iniciar nuestra grabadora de guiones Gatling. Para el sistema operativo basado en Windows, se proporciona un archivo por lotes con la instalación de Gatling y para el sistema operativo basado en Linux / MacOS, se proporciona un archivo de shell.
A continuación se muestra la estructura de archivos de la carpeta bin:
#4) Entonces, dependiendo del tipo de sistema operativo, podemos elegir el tipo de archivo a ejecutar para la grabadora en ejecución. Tenga en cuenta que aquí hay 2 archivos que usaremos:
- Archivo Gatling.sh / Gatling.bat - para ejecutar el script de simulación.
- Archivo Recorder.sh / recorder.bat - para ejecutar / abrir la grabadora de simulación Gatling.
#5) Ejecutemos el script de la grabadora para abrir la grabadora Gatling. Utilice el terminal Mac / Linux para ejecutar el script de shell (o ejecute directamente el archivo por lotes de Windows).
|_+_|#6) Si las variables de entorno están configuradas correctamente, entonces el comando anterior debería abrir la grabadora de scripts de Gatling.
#7) Observe el puerto Http / https en la grabadora (la selección predeterminada es 8000 o 8080): este es el puerto donde está configurado el oyente de proxy de tráfico Http de Gatling. Podemos cambiar este número de puerto según nuestra conveniencia (o podemos continuar con los valores predeterminados).
diferencia entre la prueba de humo y la prueba de cordura
#8) Ahora configuremos el proxy de Chrome para escuchar este puerto, es decir, esencialmente queremos enrutar nuestro tráfico Http desde el navegador a través de este oyente o grabador de proxy.
Sigue esto Enlace para configurar un proxy en Chrome para diferentes sistemas operativos.
#9) Una vez configurado el puerto, ejecutaremos nuestro escenario en el Aplicación alojada en Gatling.
#10) Antes de que comience la ejecución del escenario, primero tendremos que configurar el nombre del paquete y el nombre de la clase para el script de prueba resultante y luego iniciar el oyente proxy simplemente haciendo clic en el botón 'Iniciar' en la grabadora de script.
#11) Tan pronto como se inicie la grabadora de proxy, aparecerá una nueva ventana y, básicamente, capturará todas las solicitudes que se activan cuando el escenario se ejecuta en el navegador.
#12) Navegar a Aplicación alojada de Gatling en el navegador.
Si puede ver que la solicitud está registrada en la ventana de la grabadora, eso significa que la configuración del proxy para el navegador es correcta y la grabadora de Gatling ahora puede registrar las solicitudes según el escenario de prueba que se está ejecutando (si no, vuelva al paso # 7 para corregir la configuración del proxy para el navegador / sistema).
#13) Ahora, una vez que estemos seguros de que la configuración está funcionando bien, haga clic en 'Borrar' para eliminar todo de la grabadora y comience a ejecutar el escenario como se menciona a continuación:
- Navegar a Aplicación alojada de Gatling
- Haga clic en el botón 'Agregar una nueva computadora'. Asegúrese de llegar a un nuevo formulario de computadora con la URL del navegador como http://computer-database.gatling.io/computers/new
- Ahora complete los valores en el formulario con - Nombre de la computadora como Apple y la compañía como “Apple inc” también en el menú desplegable.
- Haga clic en 'Crear esta computadora' y será redirigido a la página principal
- Este es el escenario completo que queremos ejecutar y crear un script de automatización utilizando la grabadora de scripts de Gatling. Una vez que se ejecutan los pasos anteriores, la grabadora debería capturar todas las llamadas HTTP que se están realizando y debería verse como a continuación.
- Tenga en cuenta que también hay un par de comandos de 'PAUSA' en el guión grabado. Estos no son más que el 'tiempo de reflexión' que la grabadora captura para imitar la acción del usuario, es decir, el tiempo transcurrido entre solicitudes. Estos valores se pueden configurar / cambiar una vez que se ejecuta el script dependiendo de las necesidades reales.
#14) Para completar la creación de la secuencia de comandos, haga clic en 'Detener y guardar' en la ventana de la grabadora.
#15) El script de simulación debe crearse en el directorio o carpeta de simulación que se muestra en la pantalla de configuración de la grabadora Gatling.
Comprensión del guión de simulación
Una vez que se crea el script para el escenario ejecutado, navegue hasta la carpeta de simulación y abra el script.
Tenga en cuenta que el script se creará como el mismo paquete estructurado que se especificó antes de iniciar la grabadora; en nuestro caso, será com.learn.gatling y el nombre de la clase será 'Agregar producto'.
Abramos el archivo AddProduct.scala e intentemos recorrer las diferentes secciones del script.
Esto se puede explicar de la siguiente manera:
# 1) Configuración de instalación :es decir httpProtocolo y encabezados - En esta sección se realiza la configuración general de datos para el script, como por ejemplo:
- Tipo de protocolo: Http o https,
- Otras cosas, como baseUrl, se utilizarán en solicitudes posteriores.
- Información de encabezado: información de encabezado común, así como los encabezados que se enviarán con solicitudes individuales. Consulte header_0 y headers_2 en el fragmento de código a continuación:
# 2) Definición de escenario: Contiene el escenario real y el orden de las solicitudes que deben ejecutarse para volver a crear el escenario que se estaba ejecutando en la ventana del navegador.
Además, un punto importante a tener en cuenta aquí es que acabamos de mencionar las URL relativas para las solicitudes, en lugar de la URL completa. Esto es porque usaremos httpProtocol configuración lo hemos discutido en el punto # 1, donde se definen los datos de configuración del escenario.
|_+_|# 3) Ejecución del escenario: Esta sección es la sección más importante que contiene los pasos de configuración del escenario.
La configuración de inyección aquí es el número de usuarios / hilos o en otras palabras, la carga con la que queremos probar este escenario.
El valor predeterminado para varios usuarios es siempre 1 y se puede cambiar antes de que se ejecute el escenario.
Además, tenga en cuenta que también estamos usando la definición httpProtocol que hemos discutido en el punto # 1 que contiene todas las configuraciones básicas para el escenario a ejecutar.
setUp (scn.inject (atOnceUsers (1))). protocolos (httpProtocol)
Veremos más detalles sobre la configuración de inyección y carga en el próximo tutorial.
Ejecución de la prueba mediante un script de simulación
Ahora, veremos cómo ejecutar el escenario usando este script de simulación que fue creado usando la grabadora. El script resultante que se crea es en realidad una clase basada en Scala que contiene detalles sobre el escenario que se ejecutó a través del navegador.
Aquí hay un video tutorial para Gatling Script Execution:
La instalación de Gatling viene con un script de shell (para usuarios de Windows, es un script por lotes) que podría usarse para ejecutar esta simulación.
Siga los pasos a continuación para ejecutar la simulación creada:
#1) Navegue a la carpeta bin de la instalación de Gatling o simplemente vaya a - $ GATLING_HOME / bin
#2) Ejecute el archivo Gatling.sh para Linux / Mac os (o el archivo Gatling.bat para usuarios de Windows).
#3) En caso de que haya varios archivos de script presentes en la carpeta de simulación, el script le pedirá al usuario que seleccione la simulación que el usuario desea ejecutar (para simular esto, cree el mismo escenario en diferentes paquetes, y cuando se ejecute el script de Gatling, puede ver que muestra 2 scripts diferentes).
#4) Se selecciona la simulación (o se establece de forma predeterminada en la simulación presente en la carpeta si solo hay un script de simulación disponible).
#5) La secuencia de comandos ahora solicita agregar una descripción de ejecución opcional. Simplemente puede ignorar esto y presionar enter para iniciar la ejecución de la simulación.
#6) Mientras se ejecuta la simulación, puede ver los informes de ejecución que se imprimen en la terminal y los parámetros como el tiempo de respuesta, el total de solicitudes, el éxito / fallas, etc., se mostrarán una vista resumida una vez que se complete la ejecución del escenario.
#7) Gatling también genera un informe detallado basado en HTML al final de la finalización de la ejecución del escenario que contiene muchos puntos de datos diferentes con respecto al escenario ejecutado.
Veremos los detalles del informe generado en el siguiente tutorial.
Ventajas de usar Gatling
Gatling proporciona una gran cantidad de capacidades ricas en funciones para construir un buen conjunto de pruebas de automatización de rendimiento que aproveche el amplio Gatling DSL, así como el creciente apoyo de la comunidad para obtener asistencia y obtener respuestas a las consultas.
Es importante señalar aquí que, a diferencia de otras herramientas como JMeter, Gatling implica una curva de aprendizaje empinada, pero en lugar de eso, ofrece muchas capacidades de programación para crear un conjunto robusto y completamente funcional de scripts de simulación de pruebas de carga y rendimiento.
Algunas de estas ventajas son las siguientes:
- Es liviano y permite que un solo hilo se use para más de una solicitud, a diferencia de la mayoría de las otras herramientas de rendimiento donde un hilo se equipara a un usuario.
- El uso de un solo hilo para múltiples solicitudes permite a Gatling escalar más y generar una mayor carga incluso en una sola máquina.
- Gatling proporciona la capacidad de ejecutarse en modo distribuido cuando hay una gran carga que necesita ser simulada.
- Brinda soporte para muchos otros protocolos además de HTTP,por ejemplo, Websockets, MQTT, JDBC, etc., todos pueden probarse su rendimiento con Gatling.
- Gatling proporciona un lenguaje específico de dominio DSL rico en funciones, que tiene una sintaxis sencilla y proporciona potentes capacidades cuando se combina para crear un script de simulación.
- También proporciona muchas capacidades de control de simulación complejas, como construir en bucle, simular el tiempo de reflexión, limitar las solicitudes más allá del RPS deseado, etc.
- Tiene amplias capacidades de generación de informes listas para usar y también se pueden personalizar según los requisitos.
Conclusión
En este tutorial, hemos abordado los conceptos básicos del uso de Gatling como una herramienta de prueba de carga de elección. Con el DSL expresivo y el excelente soporte para el protocolo HTTP, Gatling está ganando popularidad rápidamente para ser utilizado como una herramienta de elección para muchos.
También aprendimos sobre la grabadora Gatling y el ejecutor de guiones Gatling con un guión de simulación de muestra que ayudó a comprender el concepto básico de grabar un guión de simulación que luego podría ejecutarse en el futuro utilizando el ejecutor de guiones Gatling.
En el siguiente tutorial, cubriremos la escritura de scripts de Gatling como proyectos de Scala, es decir, sin usar la grabadora y entenderemos las plantillas de informes que se generan cuando Gatling completa la ejecución de la simulación.
Lectura recomendada
- Pruebas de carga con los tutoriales de HP LoadRunner
- Correlación: pruebas de carga con LoadRunner
- Tutorial de prueba de remojo: ¿Qué es la prueba de remojo?
- Pruebas de carga con LoadUI: una herramienta de prueba de carga gratuita y de código abierto
- Revisión de WebLOAD: introducción a la herramienta de prueba de carga WebLOAD
- Tutorial de pruebas destructivas y no destructivas
- Tutorial de pruebas de usabilidad: una guía completa de introducción
- Pruebas de rendimiento frente a pruebas de carga frente a pruebas de estrés (diferencia)