Gatling is an open-source load- and performance-testing framework based on Scala, Akka and Netty. The first stable release was published on January 13, 2012. In 2015, Gatling's founder, Stéphane Landelle, created a company, dedicated to the development of the open-source project. According to Gatling Corp's official blog, Gatling was downloaded more than 800,000 times. In June 2016, Gatling officially presented Gatling FrontLine, Gatling's Enterprise Version with additional features. The software is designed to be used as a load testing tool for analyzing and measuring the performance of a variety of services, with a focus on web applications. Gatling was mentioned twice in ThoughtWorks Technology Radar, in 2013 and 2014, "as a tool worth trying", with an emphasis on "the interesting premise of treating your performance tests as production code". The latest stable release is Gatling 3.1.3. It was published on June 24, 2019.
Overview
Gatling Corp develops the open-source performance testing tool for web applications, Gatling, and its enterprise version, Gatling FrontLine. The Project's aims include;
High performance
Ready-to-present HTML reports
Scenario recorder and developer-friendly DSL
Terminology
Simulation: The simulation file includes the different scenarios of a test, its parametrization and the injection profiles. Technically speaking, a simulation is a Scala class. Here is an example of a simulation:
class BasicSimulation extends Simulation
Scenario: A scenario consists of a series of requests. Each scenario within a simulation can have its own injection profile. Here is an example of a scenario:
val scn = scenario .exec .get) .pause setUp.protocols
Group: Groups can be used as a subdivision of a scenario. It is also a series of requests, that has a functional purpose.
Request: Gatling is able to simulate complex users' behaviors. For this purpose, it generates the appropriate requests in the system under test. Here is an example of a request in Gatling:
exec .get) .pause
Injection profile: An injection profile is the number of virtual users injected during the test in the system under test and how they are injected. Here is an example of an injection profile:
setUp.protocols
Architecture
Gatling implemented a fully new architecture for a performance testing tool, in order to be more resource efficient. It makes it possible to simulate a high number of requests per second with a single machine.
Components
Recorder
Gatling comes up with a recorder to bootstrap a simulation.
Gatling is provided with a simple and lightweight Domain-specific language, in which simulations and scenarios are coded. This allows users to add custom behavior through many hooks. This makes simulation scripts readable and easy to maintain. This is an example of how Gatling's Domain-specific language looks like : val scn = scenario .exec .get) .pause
HTML reports
At the end of each test, Gatling generates an HTML report. Reports include:
Gatling documentation states that it is protocol agnostic, which makes it possible to implement other protocols' support. Here is a non-exhaustive list of community protocols support:
Automation with Gatling is related to its simulations' maintainability. The integration with other developer tools, especially in the DevOps lifecycle, makes it possible to industrialize performance tests, that is to say to fully automate the execution of performance testing campaigns in the software development process.
Gatling FrontLine is the enterprise version of Gatling. Gatling FrontLine is under proprietary license. It is distributed by Gatling Corp.
Company
Gatling started as an open-source project in 2012. 3 years later, in 2015, its founder, Stéphane Landelle, created a dedicated company named "Gatling Corp".
In 2015, a dedicated company was created. It provides Gatling's users with professional services and, since 2016, with an Enterprise Version of Gatling, Gatling FrontLine. The company is based in Bagneux, France, near Paris. It is a subsidiary of the IT consulting firm where it was created, eBusiness Information. Gatling Corp is a member of Systematic Paris-Region, an Île-de-Francebusiness cluster created in 2005, devoted to complex systems and ICT. Systematic Paris-Region gathers large groups, SMEs, universities and research labs to promote digital innovation. Gatling is a member of Systematic's Open Source Working Group and was elected member of Systematic's board of directors, as a representative of SMEs, in November 2016. The company took part in some events, like the Paris Open Source Summit, Liferay's 2016 Symposium, Java User Group 's meetings, the Paris Gatling User Group and the New York Gatling User Group.