Gatling
Scala-based load testing tool with detailed performance reports.
Pricing
Freemium
Type
Automation
Languages
Scala, Java, Kotlin
// VERDICT
Reach for Gatling when you want maintainable load tests as code on the JVM, an efficient engine for high load, and detailed reports. Skip it when you prefer a GUI (JMeter), the lightest scripting (k6/Locust), or a non-JVM language.
Best for
Code-as-tests load testing with a high-performance engine - an expressive Scala/Java/Kotlin DSL, efficient async execution, and rich HTML reports, well suited to developer-owned load tests in CI.
Avoid when
You want a GUI/record-based tool, the simplest possible scripting, or a language outside the JVM ecosystem.
CI/CD fit
Gatling CLI / Maven / Gradle · GitHub Actions · GitLab CI · Jenkins · Gatling Enterprise
Languages
Scala · Java · Kotlin
Team fit
JVM teams · Developer-owned load testing · Teams wanting load tests as code
Setup
Maintenance
Learning
Licence
// BEST FOR
- Writing load tests as code in a Scala/Java/Kotlin DSL
- Driving high load efficiently from a single machine (async engine)
- Detailed, shareable HTML reports out of the box
- Version-controlled, reviewable load scenarios in CI
- Teams already on the JVM toolchain
- Expressive scenario modelling (feeders, checks, pauses)
// AVOID WHEN
- You want a GUI / record-and-playback tool (JMeter)
- You want the lightest scripting model (k6/Locust)
- Your team isn't comfortable in the JVM ecosystem
- You need a non-code, business-tester-friendly tool
- A managed enterprise platform is required (LoadRunner/NeoLoad)
- You only need a quick one-off HTTP benchmark (wrk/Vegeta)
// QUICK START
# Maven archetype or the bundle, then run a simulation:
mvn gatling:test -Dgatling.simulationClass=BasicSimulation
# define scenarios in the Scala/Java/Kotlin DSL (exec/http/check/assert)// ALTERNATIVES TO CONSIDER
| Tool | Choose it when |
|---|---|
| k6 | You want JS-based load tests with a lighter scripting model. |
| Locust | You prefer Python and a distributed, web-UI approach. |
| Apache JMeter | You want a GUI/record-based tool with a huge plugin ecosystem. |
// FEATURES
- High-performance async I/O via Akka/Netty
- Code-as-test approach
- Detailed HTML reports out of the box
- Recorder for capturing HTTP scenarios
- Java, Scala, and Kotlin DSLs
- CI integration and Gatling Enterprise
// PROS
- Excellent throughput per resource
- Beautiful, actionable HTML reports
- Strong CI/CD story
- Type-safe DSL
// CONS
- Scala learning curve (mitigated by Java/Kotlin DSL)
- JVM memory footprint
- Enterprise features paid
// EXAMPLE QA WORKFLOW
Add Gatling via Maven/Gradle or the bundle
Write a simulation in the Scala/Java/Kotlin DSL
Model scenarios with feeders, checks and pauses
Run from the CLI/build and review the HTML report
Add assertions (p95, error rate) and gate CI on them
Scale to distributed load via Gatling Enterprise if needed
// RELATED QA.CODES RESOURCES
Cheat sheets
Practice