gatling / gatling
git clone https://github.com/gatling/gatling.git
v3.16.0 · 23d ago
🔥 on GitHub Trending today
Open-source load testing tool where performance test scenarios are written as code in Java, JavaScript, TypeScript, Kotlin, or Scala.
Why you might care
Built on a non-blocking Netty engine, so virtual users are lightweight rather than OS threads, reducing the load generators needed for high concurrency. Tests live in your repo and run from Maven, Gradle, sbt, or npm, with response-time and error-rate assertions that can fail CI builds. Community Edition is Apache 2.0 with no caps on duration or virtual users.
+1
stars, 24h · #13,837
+2
stars, 7 days · #22,572
+11
stars, 30 days · #26,787
7.0k
★ total · +0% this week
1.2k
forks · 18 open issues
Star history (as recorded here)
LanguageScala
LicenseApache-2.0
Created2011-05-31 (15y ago)
Last push1d ago
Watchers226
OwnerOrganization
Seen on GitHub Trending
- 2026-10-23 — #11 daily in scala · +2 ★
- 2026-10-23 — #17 monthly in scala · +11 ★
- 2026-10-23 — #10 weekly in scala · +2 ★
- 2026-10-22 — #18 daily in scala
- 2026-10-22 — #19 monthly in scala · +10 ★
- 2026-10-21 — #24 daily in scala
- 2026-10-21 — #18 monthly in scala · +10 ★
- 2026-10-20 — #24 daily in scala
- 2026-10-20 — #18 monthly in scala · +11 ★
GitHub topics
automationcicdgatlingjavajavascriptkotlinload-testload-testingload-testsloadtestloadtestingloadtestsnettyperformance-testperformance-test-gatlingperformance-testingperformance-testsscalatypescript
Links
- GitHub: github.com/gatling/gatling
- Homepage: https://gatling.io
- Releases · Issues · Hacker News mentions
README excerpt
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
---
## 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.
[code]
## 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:
[code]
Put it in `src/test/java/example/` of the Maven starter project and run:
[code]
## 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** |
Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.