Gatling es un marco de prueba de rendimiento y carga de código abierto basado en Scala , Akka 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 blog oficial de Gatling Corp, Gatling se descargó más de 800.000 veces (agosto de 2017). [1] En junio de 2016, Gatling presentó oficialmente Gatling FrontLine, la versión empresarial de Gatling con características adicionales. [2]
Tipo de negocio | Privado |
---|---|
Tipo de sitio | Pruebas de rendimiento y carga de código abierto para aplicaciones web |
Disponible en | inglés |
Fundado | 1 de julio de 2015 |
Sede | Bagneux , Francia |
Área de servicio | Mundial |
Fundador (es) | Stéphane Landelle ( director ejecutivo ) |
Industria | Software |
Productos | Gatling, Gatling FrontLine (versión empresarial) |
URL | gatling |
Lanzado | 13 de enero de 2012 |
Estado actual | Activo |
Escrito en | Scala |
El software está diseñado para usarse como una herramienta de prueba de carga para analizar y medir el rendimiento de una variedad de servicios, con un enfoque en aplicaciones web .
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 estable es Gatling 3.4.0. Fue publicado el 23 de septiembre de 2020. [4]
Descripción general
Gatling Corp desarrolla la herramienta de prueba de rendimiento de código abierto para aplicaciones web, Gatling, y su versión empresarial, Gatling FrontLine. Los objetivos del proyecto incluyen;
- Alto rendimiento
- Informes HTML listos para presentar
- Grabador de escenarios y DSL amigable para desarrolladores
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 Scala . [5] Aquí hay un ejemplo de una simulación: [6]
class BasicSimulation extiende la simulación { val httpConf = http . baseURL ( "http://computer-database.gatling.io" ) . acceptHeader ( "texto / html, aplicación / xhtml + xml, aplicación / xml; q = 0,9, * / *; q = 0,8" ) . doNotTrackHeader ( "1" ) . acceptLanguageHeader ( "en-US, en; q = 0.5" ) . acceptEncodingHeader ( "gzip, desinflar" ) . userAgentHeader ( "Mozilla / 5.0 (Windows NT 5.1; rv: 31.0) Gecko / 20100101 Firefox / 31.0" ) val scn = escenario ( "BasicSimulation" ) . exec ( http ( "request_1" ) . get ( "/" )) . pausa ( 5 ) setUp ( scn . inyectar ( atOnceUsers ( 1 )) ). protocolos ( httpConf ) }
- Escenario: un escenario consta de una serie de solicitudes . Cada escenario dentro de una simulación puede tener su propio perfil de inyección . [7] A continuación, se muestra un ejemplo de un escenario: [6]
val scn = escenario ( "BasicSimulation" ) . exec ( http ( "request_1" ) . get ( "/" )) . pausa ( 5 ) setUp ( scn . inyectar ( atOnceUsers ( 1 )) ). protocolos ( httpConf )
- Grupo: los grupos se pueden utilizar como una subdivisión de un escenario . También es una serie de solicitudes , que tiene un propósito funcional (por ejemplo, el proceso de inicio de sesión).
- Solicitud: Gatling puede simular comportamientos complejos de usuarios. Para ello, genera las solicitudes adecuadas en el sistema bajo prueba. Aquí hay un ejemplo de una solicitud en Gatling: [6]
exec ( http ( "request_1" ) . get ( "/" )) . pausa ( 5 )
- 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. A continuación se muestra un ejemplo de un perfil de inyección: [6]
setUp ( scn . inyectar ( atOnceUsers ( 1 )) ). protocolos ( httpConf )
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. [8] Permite simular una gran cantidad de solicitudes por segundo con una sola máquina. [9]
Componentes
Grabadora
Gatling crea una grabadora para iniciar una simulación.
Lenguaje específico del dominio
Gatling cuenta con un lenguaje específico de dominio simple [10] y ligero [3] , en el que se codifican simulaciones y escenarios. Esto permite a los usuarios agregar comportamientos personalizados a través de muchos ganchos. [11] Esto hace que los scripts de simulación sean legibles y fáciles de mantener. [12] Este es un ejemplo de cómo se ve el lenguaje específico del dominio de Gatling (ver también § Terminología ):
val scn = escenario ( "BasicSimulation" ) . exec ( http ( "request_1" ) . get ( "/" )) . pausa ( 5 )
Informes HTML
Al final de cada prueba, Gatling genera un informe HTML. Los informes incluyen: [13]
- Usuarios activos a lo largo del tiempo
- Distribución del tiempo de respuesta
- Percentiles de tiempo de respuesta a lo largo del tiempo
- Solicitudes por segundo a lo largo del tiempo
- Respuestas por segundo a lo largo del tiempo
Compatibilidad con protocolos y complementos
Es compatible oficialmente con los siguientes protocolos:
- HTTP
- WebSockets
- Eventos enviados por el servidor
- JMS
La documentación de Gatling afirma que es independiente del protocolo, lo que permite implementar el soporte de otros protocolos. [14] Aquí hay una lista no exhaustiva de soporte de protocolos comunitarios:
- MQTT
- Protocolo de cola de mensajes avanzado (AMQP)
- ZeroMQ
Complementos
Gatling sale con complementos oficiales y comunitarios. Se integra con:
- Entornos de desarrollo integrados (IDE) , como Eclipse (software) e IntelliJ IDEA
- Cree software de automatización o herramientas de creación, como Apache Maven y SBT
- Soluciones de integración continua como Jenkins
Aquí hay una lista no exhaustiva de complementos de la comunidad:
- Gradle
- Apache Kafka
- Conectividad de base de datos Java (JDBC)
- Apache Cassandra
- RabbitMQ
- SQL
Integración continua
La automatización con Gatling está relacionada con la mantenibilidad de sus simulaciones. [15] La integración con otras herramientas de desarrollo, especialmente en el ciclo de vida de DevOps , permite industrializar las pruebas de rendimiento, es decir, automatizar completamente la ejecución de campañas de pruebas de rendimiento en el proceso de desarrollo de software .
Lanzamientos mayores y menores [16]
Versión | Fecha de lanzamiento |
---|---|
3.0.0 | 23 de octubre de 2018 |
2.3.0 | 30 de agosto de 2017 |
2.2.0 | 15 de abril de 2016 |
2.1.0 | 15 de diciembre de 2014 |
2.0.0 | 6 de octubre de 2014 |
1.5.0 | 6 de mayo de 2013 |
1.4.0 | 20 de diciembre de 2012 |
1.3.0 | 19 de septiembre de 2012 |
1.2.0 | 31 de mayo de 2012 |
1.1.0 | 26 de marzo de 2012 |
1.0.0 | 13 de enero de 2012 |
Licencia
Gatling se publica bajo Apache License 2.0 , [17] una licencia de software libre permisiva escrita por Apache Software Foundation (ASF). [18]
Se puede acceder al código fuente en GitHub .
Gatling FrontLine
Gatling FrontLine es la versión empresarial de Gatling. Gatling FrontLine está bajo licencia propietaria . Es distribuido por Gatling Corp.
Empresa
Gatling comenzó como un proyecto de código abierto en 2012. 3 años después, en 2015, su fundador, Stéphane Landelle, creó una empresa dedicada llamada "Gatling Corp".
Orígenes del proyecto de código abierto
Gatling fue diseñado por Stéphane Landelle cuando era el director de tecnología (CTO) de una empresa francesa de consultoría de TI, eBusiness Information.
Creación de una empresa dedicada
En 2015, se creó una empresa dedicada. Proporciona a los usuarios de Gatling servicios profesionales y, desde 2016, una Versión Enterprise de Gatling, Gatling FrontLine.
La empresa tiene su sede en Bagneux , Francia, cerca de París. Es una subsidiaria de la consultora de TI donde se creó, eBusiness Information.
Gatling Corp es miembro de Systematic Paris-Region , un grupo empresarial de Île-de-France creado en 2005, [19] dedicado a sistemas complejos y TIC . [20] Systematic Paris-Region reúne a grandes grupos, pymes, universidades y laboratorios de investigación para promover la innovación digital. Gatling es miembro de Sistemática 'Grupo de Trabajo s Open Source y fue elegido miembro de la sistemática ' s junta de directores, como representante de las PYME, en noviembre el 2016.
La empresa participó en algunos eventos, como el Paris Open Source Summit (POSS, ediciones 2015, 2016 y 2017), el Symposium Liferay 2016, las reuniones del Java User Group (JUG), el Paris Gatling User Group y el New York Grupo de usuarios de Gatling.
Ver también
- Apache JMeter
- LoadRunner
- Evaluación comparativa del servidor web
- Prueba de rendimiento del software
- Ingeniería de desempeño
- Pruebas de software
- Selenio
Referencias
- ^ "¡Gatling ha alcanzado las 800.000 descargas!" . Sitio web oficial de Gatling . Gatling . Consultado el 1 de septiembre de 2017 .
- ^ "Velada de presentación Gatling FrontLine" . Grupo de usuarios de Gatling Paris (en francés). Meetup . Consultado el 1 de septiembre de 2017 .
- ^ a b c d Rodrigo Tolledo (12 de mayo de 2014). "Gatling: lleve sus pruebas de rendimiento al siguiente nivel" . Blog . ThoughtWorks . Consultado el 1 de septiembre de 2017 .
- ^ "¡Gatling Frontline 1.12.0 y Gatling 3.4.0 ya están disponibles! - Prueba de carga de código abierto de Gatling" . Prueba de carga de código abierto de Gatling . 2020-09-23 . Consultado el 29 de octubre de 2020 .
- ^ Lyudmil Latinov (9 de junio de 2017). "Pruebas de rendimiento con Gatling" . Automation Rhapsody . Consultado el 1 de septiembre de 2017 .
La "simulación" es la prueba real. Es una clase Scala que extiende la clase io.gatling.core.scenario.Simulation de Gatling. La simulación tiene un objeto de protocolo HTTP instanciado y configurado con valores adecuados como URL, parámetros de encabezado de solicitud, autenticación, almacenamiento en caché, etc. La simulación tiene uno o más "Escenarios".
- ^ a b c d Gatling Corp. "Gatling Documentation, Quickstart" . Gatling Corp . Consultado el 12 de enero de 2018 .
- ^ Lyudmil Latinov (9 de junio de 2017). "Pruebas de rendimiento con Gatling" . Automation Rhapsody . Consultado el 1 de septiembre de 2017 .
El 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. Está configurado con el número de usuarios de carga y el patrón de aceleración. Esto se hace en el método de "configuración" de la simulación. Varios escenarios pueden formar una simulación.
- ^ Siva Prasad Rao Janapati (1 de febrero de 2017). "Gatling: una herramienta de prueba de carga ligera" . Zona de rendimiento . DZone . Consultado el 1 de septiembre de 2017 .
Gatling consume menos recursos del sistema para ejecutar una prueba de carga que otras opciones.
- ^ Lyudmil Latinov (9 de junio de 2017). "Pruebas de rendimiento con Gatling" . Automation Rhapsody . Consultado el 1 de septiembre de 2017 .
Es capaz de crear una inmensa cantidad de tráfico desde un solo nodo.
- ^ Sree Tejaswi (4 de enero de 2017). "Introducción a las pruebas de carga con Gatling" . Zona DevOps . DZone . Consultado el 1 de septiembre de 2017 .
Es una herramienta fácil de instalar en la que las simulaciones y los escenarios se codifican en un lenguaje simple de dominio específico (DSL).
- ^ http://gatling.io/docs/current/cheat-sheet/
- ^ Sree Tejaswi (4 de enero de 2017). "Introducción a las pruebas de carga con Gatling" . Zona DevOps . DZone . Consultado el 1 de septiembre de 2017 .
De este modo, puede generar un código de prueba de rendimiento legible y fácil de mantener.
- ^ Sree Tejaswi (4 de enero de 2017). "Introducción a las pruebas de carga con Gatling" . Zona DevOps . DZone . Consultado el 1 de septiembre de 2017 .
- ^ "Gatling" . Documentación . Gatling Corp . Consultado el 1 de septiembre de 2017 .
Como el motor central es en realidad independiente del protocolo, es perfectamente posible implementar soporte para otros protocolos.
- ^ Federico Toledo (12 de julio de 2016). "Revisión de la herramienta Gatling para pruebas de rendimiento (escrito en Scala)" . Zona de rendimiento . DZone . Consultado el 1 de septiembre de 2017 .
El lenguaje, Scala y el DSL de Gatling están bastante enfocados en facilitar el mantenimiento de las pruebas, lo cual es ideal si se está enfocando en la integración continua.
- ^ "Hitos" . Repositorio de Gatling . GitHub . Consultado el 1 de septiembre de 2017 .
- ^ "Licencia" . Repositorio de Gatling . GitHub . Consultado el 1 de septiembre de 2017 .
- ^ Derechos de nuevos medios (2008-09-12). "Guía de licencias de código abierto" . Facultad de Derecho de California Western . Consultado el 28 de noviembre de 2015 .
Las licencias "similares a BSD", como las licencias BSD, MIT y Apache, son extremadamente permisivas y requieren poco más que atribuir las partes originales del código con licencia a los desarrolladores originales en su propio código y / o documentación.
- ^ (en francés) Systematic Paris-Région Archivado el 17 de febrero de 2013 en archive.today
- ^ (en francés) Qui sommes-nous?
enlaces externos
- Página web oficial