Gatling reports screenshot | |
| Company type | Private |
|---|---|
Website type | Open-source load and performance testing for web applications |
| Available in | English |
| Founded | 1 July 2015 |
| Headquarters | Neuilly-Sur-Seine, France |
| Area served | Worldwide |
| Founder | Stéphane Landelle (CTO) |
| Industry | Software |
| Products | Gatling, Gatling Enterprise |
| Website | gatling |
| Users | 20,000,000+ |
| Launched | 13 January 2012 |
| Current status | Active |
Content license | Apache |
| Written in | Scala, Java, JavaScript |
Gatling is a load and performance testing framework based on Scala and Netty. The first stable release was published on January 13, 2012. In 2015, Gatling's founder, Stéphane Landelle, created a company (named "Gatling Corp"), dedicated to the development of the open-source project. According to Gatling Corp's official website, Gatling was downloaded more than 20,000,000 times (2024). In June 2016, Gatling officially presented Gatling Enterprise the commercial version which included test orchestration and team collaboration 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, application programming interfaces (APIs), and microservices.
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 minor release is Gatling 3.16, published on September 30, 2026.
Gatling started as an open-source project in 2012 by Stéphane Landelle, while he was the chief technology officer (CTO) of a French IT consulting firm, eBusiness Information. In 2015 a dedicated company named "Gatling Corp" to develop a commercial product for load test orchestration and collaboration. The first version of Gatling Enterprise (originally named FrontLine) was released in 2016.
The company is based in Neuilly-sur-Seine, France, near Paris.
Gatling Corp is a member of Systematic Paris-Region, an Île-de-France business 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 (POSS, 2015, 2016 and 2017 editions), Liferay's 2016 Symposium, Java User Group (JUG)'s meetings, the Paris Gatling User Group and the New York Gatling User Group.
Gatling consists of an open-source core and an enterprise orchestration and collaboration platform. The open-source performance testing tool includes:
Gatling Enterprise includes all of the open-source features and additionally:
//Java
public class BasicSimulation extends Simulation {
HttpProtocolBuilder httpProtocol =
http.baseUrl("https://e-comm.gatling.io")
.acceptHeader("application/json")
.contentTypeHeader("application/json");
ScenarioBuilder myFirstScenario = scenario("My First Scenario")
.exec(http("Request 1")
.get("/session/"));
{
setUp(
myFirstScenario.injectOpen(constantUsersPerSec(2).during(60))
).protocols(httpProtocol);
}
}
//JavaScript
export default simulation((setUp) => {
const httpProtocol =
http.baseUrl("https://e-comm.gatling.io")
.acceptHeader("application/json")
.contentTypeHeader("application/json");
const myScenario = scenario("My Scenario")
.exec(http("Request 1")
.get("/session/"));
setUp(
myScenario.injectOpen(constantUsersPerSec(2).during(60))
).protocols(httpProtocol);
});
//Java
ScenarioBuilder myFirstScenario = scenario("My First Scenario")
.exec(http("Request 1")
.get("/session/"));
{
setUp(
myFirstScenario.injectOpen(constantUsersPerSec(2).during(60))
).protocols(httpProtocol);
}
//JavaScript
const myScenario = scenario("My Scenario")
.exec(http("Request 1")
.get("/session/"));
setUp(
myScenario.injectOpen(constantUsersPerSec(2).during(60))
).protocols(httpProtocol);
});
//Java
.exec(http("Request 1")
.get("/session/"));
//JavaScript
.exec(http("Request 1")
.get("/session/"));
//Java
setUp(
myFirstScenario.injectOpen(constantUsersPerSec(2).during(60))
).protocols(httpProtocol);
//JavaScript
setUp(
myScenario.injectOpen(constantUsersPerSec(2).during(60))
).protocols(httpProtocol);
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.
Gatling comes with an HTTP web recorder to bootstrap a simulation. The HTTP recorder can be used to directly capture browser actions or convert .har files to load test scenarios.
Gatling Studio is a desktop tool that records browser sessions and converts them into Gatling load test scripts. It captures HTTP interactions — including headers, payloads, and timing — from a live browser session or an imported HAR file, filters out static and third-party requests, and generates Java (Maven) code representing the recorded user flow. The exported project can be run locally with Gatling Community Edition or deployed through Gatling Enterprise Edition.
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.
In 2024 Gatling introduced a new DSL (SDK) for JavaScript and TypeScript. The JavaScript and TypeScript SDK uses GraalVM to translate JavaScript code to Java and execute load tests on a Java virtual machine (JVM). Adding JavaScript and TypeScript support made Gatling the first polyglot load testing tool in the market.
This is an example of what Gatling's domain-specific language looks like (see also § Terminology):
val scn = scenario("BasicSimulation")
.exec(http("request_1")
.get("/"))
.pause(5)
At the end of each test, Gatling generates a static HTML report. Reports include:
Gatling Enterprise additionally includes:
Gatling incorporates several AI-assisted features. An IDE plugin can generate test simulations from natural language prompts and convert scripts from tools such as JMeter and LoadRunner. The platform can produce plain-language summaries of completed test runs, highlighting anomalies and regressions. A Model Context Protocol (MCP) server allows compatible AI coding agents to configure and launch tests from within a development environment. The platform also supports protocols associated with large language model (LLM) workloads, including Server-Sent Events (SSE) and WebSockets.
It officially supports the following protocols:
Gatling documentation states that it is protocol agnostic, which makes it possible to implement other protocols' support.
Gatling comes out with official and community plugins. It integrates with:
Here is a non-exhaustive list of plugins created by community members:
Automation with Gatling is related to its simulations' maintainability. The integration with other developer tools, especially in the DevOps lifecycle, makes it possible to create performance tests at scale, that is to say to fully automate the execution of performance testing campaigns in the software development process.
| Version | Release date |
|---|---|
| 3.16 | 30 September 2026 |
| 3.15 | 27 February 2026 |
| 3.14 | 12 May 2025 |
| 3.13 | 13 November 2024 |
| 3.12 | 9 September 2024 |
| 3.11.1 | 25 April 2024 |
| 3.10.3 | 21 December 2023 |
| 3.9.5 | 10 May 2023 |
| 3.0.0 | 23 October 2018 |
| 2.3.0 | 30 August 2017 |
| 2.2.0 | 15 April 2016 |
| 2.1.0 | 15 December 2014 |
| 2.0.0 | 6 October 2014 |
| 1.5.0 | 6 May 2013 |
| 1.4.0 | 20 December 2012 |
| 1.3.0 | 19 September 2012 |
| 1.2.0 | 31 May 2012 |
| 1.1.0 | 26 March 2012 |
| 1.0.0 | 13 January 2012 |
Gatling is published under Apache License 2.0, a permissive free software license written by the Apache Software Foundation (ASF).
The source code is accessible on GitHub.
Gatling Enterprise is the commercial version of Gatling. It is proprietary software, distributed by Gatling Corp.
"Simulation" is the actual test. It is a Scala class that extends Gatling's io.gatling.core.scenario.Simulation class. Simulation has a HTTP Protocol object instantiated and configured with proper values as URL, request header parameters, authentication, caching, etc. Simulation has one or more "Scenario".
Scenario is a series of HTTP Requests with different action (POST/GET) and request parameters. Scenario is the actual user execution path. It is configured with load users count and ramp up pattern. This is done in the Simulation's "setUp" method. Several scenarios can form one simulation.
Gatling consumes fewer system resources to run a load test than other options.
It is capable of creating an immense amount of traffic from a single node.
{{cite web}}: CS1 maint: url-status (link)It is an easy-to-install tool where simulations and scenarios are coded in a simple domain-specific language (DSL).
You can thus generate readable and easy to maintain performance test code.
As the core engine is actually protocol agnostic, it is perfectly possible to implement support for other protocols.
The language, Scala, and Gatling's DSL are pretty focused on facilitating the maintainability of the tests, which is ideal if you are focusing on continuous integration
The 'BSD-like' licenses such as the BSD, MIT, and Apache licenses are extremely permissive, requiring little more than attributing the original portions of the licensed code to the original developers in your own code and/or documentation.