Gatling is a high-performance load testing tool built on the JVM that emphasizes realism, scalability, and developer ergonomics. Test scenarios are scripted in a concise Scala-based DSL, allowing you to model user journeys with think times, feeders (dynamic data), checks, and assertions all in code. Its asynchronous, non-blocking engine (backed by Netty) can drive very high concurrency from a single injector, reducing the need for large injector farms. Gatling supports HTTP out of the box as well as WebSocket, Server-Sent Events, and JMS, so you can exercise modern, real-time systems end to end. Rich HTML reports visualize percentiles, response time distributions, errors, and throughput, making bottlenecks and regressions easy to spot. With injection profiles (ramp, constant, spikes) and pass/fail gates, you can automate performance thresholds in CI and promote builds with confidence.
Features
- Supports multiple protocols: HTTP, WebSocket, Server-Sent-Events, JMS, MQTT, gRPC etc.
- Ability to script simulations/scenarios in Scala with expressive DSL for defining user behavior, pacing, injection of load etc.
- Built-in reporting and metrics dashboards to see latency, throughput, failures, etc.
- Integrated test recorder (GUI) that can record user behavior and generate simulation scripts
- Support for distributed load / cluster mode so large numbers of virtual users can be simulated across machines
- Integration with DevOps / CI pipelines, enabling automated performance regression testing etc.