GitHub - gatling/gatling: Modern Load Testing as Code · GitHub
Skip to content

Latest commit

 

History

11,518 Commits

Folders and files

Repository files navigation

Gatling: simulations written as code, run reports, response time percentiles, and trend analysis Gatling

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

Build status Maven Central License

More than 300,000 companies trust Gatling, including Adobe, Betclic, Bouygues Telecom, Canal+, Circle K, Criteo, MultiChoice, Playtika, SNCF Connect, Sophos, Sopra Steria, and Toast


What is Gatling?

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

Why Gatling

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

Get started

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

What is in this repository

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

SDKs

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.

Protocols

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.

Community and support

Documentation · Community forum · YouTube · Report a bug

Contributing

Gatling is, and will remain, open source. Read the contribution guidelines before opening a pull request.

License

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.


Gatling Enterprise Edition

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.

AI extensions

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.

Documentation What it covers
Overview Installation, requirements, and what the extensions contain
Gatling Skills Bootstrap a project, build tools, configuration as code, JMeter and LoadRunner converters
Gatling MCP Server Query teams, packages, simulations, and load generator locations in natural language
AI Assistant IDE integrations for VS Code, Cursor, Windsurf, and Antigravity

Live demo: Gatling in action. Build, run and interpret your first load test. See what Enterprise Edition gives you out of the box, in 30 minutes. Register for the next live demo.