Articulo de referencia

Gatling (software)

Gatling es un marco de trabajo para pruebas de carga y rendimiento basado en Scala y Netty . La primera versión estable se publicó el 13 de enero de 2012. En 2015, el fundador d...

Gatling es un marco de trabajo para pruebas de carga y rendimiento basado en Scala y Netty . La primera versión estable se publicó el 13 de enero de 2012. En 2015, el fundador de Gatling, Stéphane Landelle, creó una empresa (llamada "Gatling Corp"), dedicada al desarrollo del proyecto de código abierto. Según el sitio web oficial de Gatling Corp, Gatling se descargó más de 20 000 000  veces (2024). [ 1 ] En junio de 2016, Gatling presentó oficialmente Gatling Enterprise, la versión comercial que incluía funciones de orquestación de pruebas y colaboración en equipo. [ 2 ]

El software está diseñado para ser utilizado como una herramienta de prueba de carga para analizar y medir el rendimiento de una variedad de servicios, con especial atención a las aplicaciones web , las interfaces de programación de aplicaciones ( API ) y los microservicios .

Gatling fue mencionado dos veces en ThoughtWorks Technology Radar, en 2013 y 2014, [ 3 ] "como una herramienta que vale la pena probar", [ 3 ] con énfasis en "la interesante premisa de tratar sus pruebas de rendimiento como código de producción ". [ 3 ]

La última versión menor es Gatling 3.14, publicada el 12 de mayo de 2025. [ 4 ]

Historia de la empresa

Gatling comenzó como un proyecto de código abierto en 2012, creado por Stéphane Landelle, director de tecnología (CTO) de la consultora francesa de TI eBusiness Information. En 2015, se fundó la empresa Gatling Corp. para desarrollar un producto comercial para la orquestación y colaboración en pruebas de carga. La primera versión de Gatling Enterprise (originalmente llamada FrontLine) se lanzó en 2016.

La empresa tiene su sede en Bagneux , Francia, cerca de París.

Gatling Corp es miembro de Systematic Paris-Region , un clúster empresarial de Île-de-France creado en 2005, [ 5 ] dedicado a sistemas complejos y TIC . [ 6 ] Systematic Paris-Region reúne a grandes grupos, pymes, universidades y laboratorios de investigación para promover la innovación digital. Gatling es miembro del Grupo de Trabajo de Código Abierto de Systematic y fue elegido miembro del consejo de administración de Systematic , como representante de las pymes, en noviembre de 2016.

La empresa participó en algunos eventos, como la Cumbre de Código Abierto de París (POSS, ediciones de 2015, 2016 y 2017), el Simposio de Liferay de 2016, las reuniones del Java User Group (JUG), el Paris Gatling User Group y el New York Gatling User Group.

Descripción general del proyecto

Gatling consta de un núcleo de código abierto y una plataforma de orquestación y colaboración empresarial. La herramienta de prueba de rendimiento de código abierto incluye:

  • El motor generador de carga de alto rendimiento
  • Kits de desarrollo de software (SDK) en múltiples lenguajes de programación para Java , Scala , Kotlin , JavaScript y TypeScript .
  • Informes HTML estáticos

Gatling Enterprise incluye todas las características de código abierto y, además:

  • Informes interactivos y en tiempo real
  • Informes personalizados y opciones para compartir.
  • Múltiples opciones de generadores de carga, desde totalmente gestionados hasta autogestionados.
  • Integración completa de CI/CD
  • RBAC y SSO
  • Funcionalidades y herramientas de IA

Terminología

  • Simulación: El archivo de simulación incluye los diferentes escenarios de una prueba, su parametrización y los perfiles de inyección . Técnicamente hablando, una simulación es una clase de Scala . [ 7 ] Aquí hay ejemplos de simulaciones en Java y JavaScript: [ 8 ] [ 9 ]
//Javaclase pública BasicSimulation extiende Simulation {HttpProtocolBuilder httpProtocol = http . baseUrl ( "https://e-comm.gatling.io" ) . acceptHeader ( "application/json" ) . contentTypeHeader ( "application/json" );ScenarioBuilder myFirstScenario = scenario ( "Mi primer escenario" ) . exec ( http ( "Solicitud 1" ) . get ( "/session/" ));{ setUp ( myFirstScenario . injectOpen ( constantUsersPerSec ( 2 ). during ( 60 )) ). protocols ( httpProtocol ); } }
//JavaScriptexport default simulation (( setUp ) => {const httpProtocol = http . baseUrl ( "https://e-comm.gatling.io" ) . acceptHeader ( "application/json" ) . contentTypeHeader ( "application/json" );const myScenario = scenario ( "Mi escenario" ) . exec ( http ( "Solicitud 1" ) . get ( "/session/" ));setUp ( myScenario.injectOpen ( constantUsersPerSec ( 2 ) .during ( 60 )) ). protocols ( httpProtocol ); } ) ;
  • Escenario: Un escenario consta de una serie de solicitudes . Cada escenario dentro de una simulación puede tener su propio perfil de inyección . [ 10 ] Aquí hay un ejemplo de un escenario: [ 8 ] [ 9 ]
//JavaScenarioBuilder myFirstScenario = scenario ( "Mi primer escenario" ) . exec ( http ( "Solicitud 1" ) . get ( "/session/" ));{ setUp ( myFirstScenario . injectOpen ( constantUsersPerSec ( 2 ). during ( 60 )) ). protocols ( httpProtocol ); }
//JavaScriptconst myScenario = scenario ( "Mi escenario" ) . exec ( http ( "Solicitud 1" ) . get ( "/session/" ));setUp ( myScenario.injectOpen ( constantUsersPerSec ( 2 ) .during ( 60 )) ). protocols ( httpProtocol ); } ) ;
  • Grupo: Los grupos pueden utilizarse como una subdivisión de un escenario . También se trata de una serie de solicitudes que tienen una finalidad funcional (por ejemplo, el proceso de inicio de sesión).
  • Solicitud: Gatling es capaz de simular comportamientos complejos de usuarios. Para ello, genera las solicitudes apropiadas en el sistema bajo prueba. Aquí hay un ejemplo de una solicitud en Gatling: [ 8 ] [ 9 ]
//Java.exec ( http ( "Solicitud 1" ) . get ( "/session/" ) );
//JavaScript . exec ( http ( "Request 1" ) . get ( "/session/" ));
  • Perfil de inyección: Un perfil de inyección es el número de usuarios virtuales inyectados durante la prueba en el sistema bajo prueba y cómo se inyectan. Aquí hay un ejemplo de un perfil de inyección: [ 8 ]
//JavasetUp ( myFirstScenario . injectOpen ( constantUsersPerSec ( 2 ). during ( 60 )) ). protocols ( httpProtocol );
//JavaScript setUp ( myScenario . injectOpen ( constantUsersPerSec ( 2 ). during ( 60 )) ). protocols ( httpProtocol );

Arquitectura

Gatling implementó una arquitectura completamente nueva para una herramienta de prueba de rendimiento, con el fin de ser más eficiente en el uso de recursos. [ 11 ] Esto permite simular un alto número de solicitudes por segundo con una sola máquina. [ 12 ]

Componentes

Grabadora

Gatling incluye un grabador web HTTP para iniciar una simulación. Este grabador permite capturar directamente las acciones del navegador o convertir archivos .har en escenarios de pruebas de carga.

Estudio Gatling

Gatling Studio [ 13 ] es una herramienta de escritorio que graba sesiones de navegador y las convierte en scripts de prueba de carga de Gatling. Captura las interacciones HTTP (incluidos encabezados, cargas útiles y tiempos) de una sesión de navegador en vivo o de un archivo HAR importado, filtra las solicitudes estáticas y de terceros, y genera código Java (Maven) que representa el flujo de usuario grabado. El proyecto exportado se puede ejecutar localmente con Gatling Community Edition o implementarse mediante Gatling Enterprise Edition.

Lenguaje específico del dominio

Gatling cuenta con un lenguaje específico de dominio simple [ 14 ] y ligero [ 3 ] , en el que se codifican simulaciones y escenarios. Esto permite a los usuarios agregar comportamiento personalizado a través de numerosos ganchos [ 15 ] . Esto hace que los scripts de simulación sean legibles y fáciles de mantener [ 16 ] .

En 2024, Gatling presentó un nuevo DSL (SDK) para JavaScript y TypeScript . [ 17 ] El SDK de JavaScript y TypeScript utiliza GraalVM para traducir código JavaScript a Java y ejecutar pruebas de carga en una máquina virtual Java (JVM). La incorporación de la compatibilidad con JavaScript y TypeScript convirtió a Gatling en la primera herramienta políglota de pruebas de carga del mercado.

Este es un ejemplo de cómo se ve el lenguaje específico de dominio de Gatling (véase también §  Terminología ):

val scn = scenario ( "BasicSimulation" ) . exec ( http ( "request_1" ) . get ( "/" )) . pause ( 5 )

Informes

Al final de cada prueba, Gatling genera un informe HTML estático. Los informes incluyen: [ 18 ]

  • Usuarios activos a lo largo del tiempo
  • Distribución del tiempo de respuesta
  • Percentiles del tiempo de respuesta a lo largo del tiempo
  • Solicitudes por segundo a lo largo del tiempo
  • Respuestas por segundo a lo largo del tiempo

Gatling Enterprise incluye además: [ 19 ]

  • Resultados en tiempo real
  • Métricas de respuesta avanzadas
  • Métricas de estado del generador de carga
  • Herramientas de análisis y comparación de tendencias

Información sobre IA

Gatling incorpora varias funciones asistidas por IA. Un complemento para IDE permite generar simulaciones de pruebas a partir de instrucciones en lenguaje natural y convertir scripts de herramientas como JMeter y LoadRunner . La plataforma puede generar resúmenes en lenguaje natural de las ejecuciones de pruebas completadas, resaltando anomalías y regresiones. Un servidor MCP ( Protocolo de Contexto de Modelo ) permite que los agentes de codificación de IA compatibles configuren y ejecuten pruebas desde un entorno de desarrollo. La plataforma también admite protocolos asociados con grandes cargas de trabajo de modelos de lenguaje (LLM), como Server-Sent Events (SSE) y WebSockets.

Compatibilidad con protocolos y complementos

Es compatible oficialmente con los siguientes protocolos:

La documentación de Gatling afirma que es independiente del protocolo, lo que permite implementar la compatibilidad con otros protocolos. [ 20 ]

Plugins

Gatling ofrece complementos oficiales y de la comunidad. Se integra con:

Complementos de la comunidad

Aquí hay una lista no exhaustiva de complementos creados por miembros de la comunidad: [ 21 ]

Integración continua

La automatización con Gatling está relacionada con la mantenibilidad de sus simulaciones. [ 22 ] La integración con otras herramientas de desarrollo, especialmente en el ciclo de vida de DevOps , permite crear pruebas de rendimiento a escala, es decir, automatizar completamente la ejecución de campañas de pruebas de rendimiento en el proceso de desarrollo de software .

Lanzamientos importantes y menores

Licencias

Gatling se publica bajo la Licencia Apache 2.0 , [ 24 ] una licencia de software libre permisiva escrita por la Apache Software Foundation (ASF). [ 25 ]

El código fuente está disponible en GitHub .

Empresa Gatling

Gatling Enterprise es la versión comercial de Gatling. Es un software propietario , distribuido por Gatling Corp.

Véase también

Referencias

  1. "Gatling anuncia 20 millones de descargas" . Storiesout . 7 de diciembre de 2023.
  2. "Soirée de présentation Gatling FrontLine" . Gatling Paris User Group (en francés). Meetup . Consultado el 1 de septiembre de 2017 .
  3. 1 2 3 4 Rodrigo Tolledo (12 de mayo de 2014). "Gatling: Lleva tus pruebas de rendimiento al siguiente nivel" . Blog . ThoughtWorks . Recuperado el 1 de septiembre de 2017 .
  4. "Novedades de la versión 3.14" . 16 de mayo de 2025.
  5. (en francés) Sistemático París-Región Enlace obsoleto archivado el 17/02/2013 en archive.today
  6. (en francés) Qui sommes-nous?
  7. Lyudmil Latinov (9 de junio de 2017). "Pruebas de rendimiento con Gatling" . Automation Rhapsody . Consultado el 1 de septiembre de 2017 ."Simulation" es la prueba propiamente dicha. Es una clase Scala que extiende la clase io.gatling.core.scenario.Simulation de Gatling. Simulation tiene un objeto HTTP Protocol instanciado y configurado con los valores adecuados, como URL, parámetros de encabezado de solicitud, autenticación, almacenamiento en caché, etc. Simulation tiene uno o más "Scenarios".
  8. 1 2 3 4 Gatling Corp. "Documentación de Gatling, cree su primera simulación basada en Java" . Gatling Corp. Recuperado el 12 de enero de 2018 .
  9. 1 2 3 "Crea tu primera simulación basada en JavaScript" . Documentación de Gatling . 16 de diciembre de 2023. Consultado el 23 de julio de 2024 .
  10. Lyudmil Latinov (9 de junio de 2017). "Pruebas de rendimiento con Gatling" . Automation Rhapsody . Recuperado el 1 de septiembre de 2017. Un escenario es una serie de solicitudes HTTP con diferentes acciones (POST/GET) y parámetros de solicitud. El escenario es la ruta de ejecución real del usuario. Se configura con el número de usuarios de carga y el patrón de rampa. Esto se hace en el método "setUp" de la simulación. Varios escenarios pueden formar una simulación.
  11. Siva Prasad Rao Janapati (1 de febrero de 2017). "Gatling: una herramienta ligera para pruebas de carga" . Performance Zone . DZone . Consultado el 1 de septiembre de 2017. Gatling consume menos recursos del sistema para ejecutar una prueba de carga que otras opciones.
  12. Lyudmil Latinov (9 de junio de 2017). "Pruebas de rendimiento con Gatling" . Automation Rhapsody . Consultado el 1 de septiembre de 2017. Es capaz de generar una inmensa cantidad de tráfico desde un único nodo .
  13. Colantonio, Joe (enero de 2026). "Gatling Studio: Comience a realizar pruebas de rendimiento en minutos (no se requiere experiencia)" . www.youtube.com . Consultado el 6 de mayo de 2026 .{{cite web}}: CS1 mantenimiento: estado de la URL ( enlace )
  14. Sree Tejaswi (4 de enero de 2017). "Introducción a las pruebas de carga con Gatling" . DevOps Zone . DZone . Consultado el 1 de septiembre de 2017. Es una herramienta fácil de instalar donde las simulaciones y los escenarios se codifican en un lenguaje específico de dominio (DSL) simple.
  15. "Hoja de trucos" . 20 de abril de 2021.
  16. Sree Tejaswi (4 de enero de 2017). "Introducción a las pruebas de carga con Gatling" . DevOps Zone . DZone . Consultado el 1 de septiembre de 2017. De esta forma, puede generar código de prueba de rendimiento legible y fácil de mantener.
  17. "JavaScript SDK" . Gatling.io: Blog de Gatling . Consultado el 24 de mayo de 2024 .
  18. Sree Tejaswi (4 de enero de 2017). "Introducción a las pruebas de carga con Gatling" . DevOps Zone . DZone . Consultado el 1 de septiembre de 2017 .
  19. "Nube" . 10 de marzo de 2021. Consultado el 16 de mayo de 2025 .
  20. "Gatling" . Documentación . Gatling Corp. Consultado el 1 de septiembre de 2017. Dado que el motor principal es independiente del protocolo, es perfectamente posible implementar soporte para otros protocolos.
  21. "Documentación de Gatling, complementos de terceros para Gatling" . Gatling . 20 de abril de 2021. Consultado el 16 de mayo de 2025 .
  22. Federico Toledo (12 de julio de 2016). "Revisión de la herramienta Gatling para pruebas de rendimiento (escrita en Scala)" . Performance Zone . DZone. Archivado del original el 12 de enero de 2018. Recuperado el 1 de septiembre de 2017. El lenguaje, Scala, y el DSL de Gatling están bastante enfocados en facilitar la mantenibilidad de las pruebas, lo cual es ideal si te enfocas en la integración continua.
  23. "Hitos" . Repositorio de Gatling . GitHub . Consultado el 1 de septiembre de 2017 .
  24. "Licencia" . Repositorio de Gatling . GitHub . Consultado el 1 de septiembre de 2017 .
  25. New Media Rights (12 de septiembre de 2008). "Guía de licencias de código abierto" . Facultad de Derecho de California Western . Consultado el 28 de noviembre de 2015. Las licencias "tipo BSD", como las licencias BSD, MIT y Apache, son extremadamente permisivas y requieren poco más que atribuir las partes originales del código licenciado a los desarrolladores originales en su propio código y/o documentación.
  • Sitio web oficial
  • Gatling en GitHub
Obtenido de " https://en.wikipedia.org/w/index.php?title=Gatling_(software)&oldid=1352851846 "