Load testing as code
Write tests in Java, JavaScript, TypeScript, Kotlin or Scala.
Run them on your machine or in your CI, and fail the build when performance regresses.
Documentation
·
Community forum
·
Enterprise Edition
·
Live demo
Gatling is an open-source load testing tool. You write test scenarios ("simulations") as code, run them against your services, and get a detailed HTML report of response times, throughput, and errors. This repository is Gatling Community Edition, licensed under Apache 2.0 and free to use, including commercially.
Write a simulation -> Run it locally or in CI -> Read the report -> Catch regressions before release
An engine that does not need a fleet. Virtual users are lightweight messages on a non-blocking engine built on Netty, not operating system threads. Tools built on a thread-per-user model need a fleet of load generators to reach the same load.
Tests are code, in your repository. Readable diffs, reviewable pull requests, and the same review process as the application they test. No proprietary XML format, no export step between a GUI and your pipeline.
Write once, run anywhere. The same simulation runs on a laptop and in CI, through the Maven, Gradle, sbt, or npm plugin, with assertions on response times and error rates.
Open source, Apache 2.0. No account, no registration, and no cap on test duration or virtual users for any protocol in this repository. 300,000+ companies and 30M+ downloads.
"If you wanted to drive hundreds of thousands of transactions per second, it's not a hard thing to achieve in Gatling. You don't have to tune it. You don't have to call in an expert. Any developer getting started would be able to drive that kind of load with ease."
Chaitanya Bhatt, Principal Engineer at Intuit
·
Read the customer story
Follow the official tutorials: installation, your first simulation, and running it, in every supported language.
A complete simulation, in Java. It sends 10 users to one endpoint and fails if any request fails:
package example;
import static io.gatling.javaapi.core.CoreDsl.*;
import static io.gatling.javaapi.http.HttpDsl.*;
import io.gatling.javaapi.core.*;
public class BasicSimulation extends Simulation {
{
setUp(
scenario("Scenario")
.exec(http("Session").get("/session"))
.injectOpen(atOnceUsers(10))
).protocols(http.baseUrl("https://api-ecomm.gatling.io"))
.assertions(global().failedRequests().count().lt(1L));
}
}Put it in src/test/java/example/ of the Maven starter project and run:
./mvnw gatling:test| Layer | What you get |
|---|---|
| Write | The Recorder, which turns a browser session or a HAR file into a simulation. Feeders for CSV, JSON, and databases. Checks on status codes, response bodies, headers, and timings |
| Run | A non-blocking engine built on Netty. HTTP/1.1 and HTTP/2, WebSocket, Server-Sent Events, and JMS. Open and closed workload models |
| Analyze | An HTML report per run, with percentiles, throughput over time, and errors per request. Assertions that fail the build when a threshold is breached |
| Automate | Maven, Gradle, sbt, and npm plugins. Run from the command line, in whatever CI system you already use |
| SDK | Languages | Where |
|---|---|---|
| Java SDK | Java, plus Kotlin and Scala on the JVM | This repository. Any OpenJDK LTS release from 11 to 25, with Maven, Gradle, or sbt |
| JavaScript SDK | JavaScript, TypeScript | gatling/gatling-js |
Both drive the same engine and produce the same reports.
HTTP/1.1, HTTP/2, WebSocket, Server-Sent Events, and JMS ship here under Apache 2.0, with no limits.
gRPC, MQTT, and GraphQL are separate dependencies under the Gatling Enterprise Component License, not Apache 2.0. With Community Edition they are capped at 5 concurrent users and 5 minute tests. GraphQL is available in the Java SDK (Java, Kotlin, Scala), not yet in the JavaScript SDK.
Kafka, AMQP, SFTP, FTP, and JDBC are covered by third-party plugins maintained by the community, not by Gatling.
Documentation · Community forum · YouTube · Report a bug
Gatling is, and will remain, open source. Read the contribution guidelines before opening a pull request.
Gatling Community Edition is licensed under Apache 2.0. The gRPC, MQTT, and GraphQL components are distributed under the Gatling Enterprise Component License. Reports are built with Highcharts, under a license granted by Highsoft AS.
Everything above runs from this repository alone. Gatling Enterprise Edition is a commercial product built on the same engine, for teams that need to generate load from managed or private infrastructure and share results across the organization.
| Community Edition | Enterprise Edition | |
|---|---|---|
| License | Apache 2.0, free | Commercial |
| Load generation | Your machine | Managed generators, or your own AWS, Azure, GCP, or Kubernetes accounts through private locations |
| Reporting | HTML report per run | Live dashboards, run comparison, trends over time, SLO tracking, and AI analysis |
| Collaboration | Not included | Teams, user roles, SSO, and shared reports |
| Integrations | Build tool plugins only | CI/CD, APM, notifications, and SSO integrations |
| gRPC, MQTT, and GraphQL | 5 users, 5 minute tests | Unlimited |
Try Enterprise Edition free for 14 days, no credit card required.
Skills and an MCP server that let an AI coding assistant scaffold Gatling projects, convert JMeter test plans and LoadRunner scripts, and drive Gatling Enterprise from your editor. Packaged as a Claude Code plugin, and usable in any LLM client that supports skills or local MCP servers. They require a Gatling Enterprise API token.
