Gatling logo

Gatling

Freemium

Scala-based load testing tool with detailed performance reports.

Visit websiteGitHub

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

Medium

Maintenance

Low

Learning

Intermediate

Licence

Freemium

// 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

ToolChoose it when
k6You want JS-based load tests with a lighter scripting model.
LocustYou prefer Python and a distributed, web-UI approach.
Apache JMeterYou 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

  1. Add Gatling via Maven/Gradle or the bundle

  2. Write a simulation in the Scala/Java/Kotlin DSL

  3. Model scenarios with feeders, checks and pauses

  4. Run from the CLI/build and review the HTML report

  5. Add assertions (p95, error rate) and gate CI on them

  6. Scale to distributed load via Gatling Enterprise if needed