Open-source Java application for load testing and measuring the performance of web applications and other services.
gatling/gatling
Open-source load testing tool where you write performance test scenarios as code in Java, Kotlin, Scala, JavaScript or TypeScript.
Open-source alternative to:LoadRunner
JMeter
- Stars
- 6,959
- Forks
- 1,210
- Open issues
- 18
- Last commit
- yesterday
What is it?
Gatling is a load testing tool that treats tests as code. You write simulations in Java, Kotlin, Scala, JavaScript or TypeScript, run them locally or in CI through Maven, Gradle, sbt or npm plugins, and get an HTML report with response time percentiles, throughput and errors per request. Assertions can fail the build when a response time or error threshold is breached.
Virtual users run on a non-blocking engine built on Netty rather than operating system threads, so a single machine can generate substantial load. The Community Edition under Apache 2.0 supports HTTP/1.1, HTTP/2, WebSocket, Server-Sent Events and JMS without limits. gRPC, MQTT and GraphQL are available under a separate component license with limits of 5 concurrent users and 5-minute tests in the free tier.
The project also ships a recorder that turns browser sessions or HAR files into simulations, feeders for CSV, JSON and databases, and open and closed workload models. A commercial Enterprise Edition adds managed load generators, team collaboration and trend dashboards.
Key features
- 01Write load test scenarios as code in Java, Kotlin, Scala, JavaScript or TypeScript.
- 02Run tests from Maven, Gradle, sbt or npm, including in CI pipelines.
- 03Generate HTML reports with response time percentiles, throughput and errors.
- 04Fail builds with assertions on response times and error rates.
- 05Support HTTP/1.1, HTTP/2, WebSocket, Server-Sent Events and JMS in Community Edition.
Use cases
- Checking API response times before a release and blocking regressions in CI.
- Simulating thousands of concurrent users against a web service without a large load-generator fleet.
- Recording a browser session to bootstrap a realistic load test script.
- Load testing WebSocket or Server-Sent Events endpoints alongside standard HTTP APIs.
Quick start
- 1
Install and run the Maven starter project (put a simulation in src/test/java/example/)
./mvnw gatling:test
Things to know
- gRPC, MQTT and GraphQL use a separate Enterprise Component License and are capped at 5 concurrent users and 5-minute tests in Community Edition.
- Kafka, AMQP, SFTP, FTP and JDBC rely on community-maintained third-party plugins.
Topics
FAQ
- What is gatling?
- Open-source load testing tool where you write performance test scenarios as code in Java, Kotlin, Scala, JavaScript or TypeScript. Gatling is a load testing tool that treats tests as code. You write simulations in Java, Kotlin, Scala, JavaScript or TypeScript, run them locally or in CI through Maven, Gradle, sbt or npm plugins, and get an HTML report with response time percentiles, throughput and errors per request. Assertions can fail the build when a response time or error threshold is breached.
- Is gatling free to use? What license does it have?
- gatling is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is gatling still maintained?
- Actively maintained. The last commit to gatling was on Nov 5, 2026.
- What can I use gatling for?
- Checking API response times before a release and blocking regressions in CI. Simulating thousands of concurrent users against a web service without a large load-generator fleet. Recording a browser session to bootstrap a realistic load test script. Load testing WebSocket or Server-Sent Events endpoints alongside standard HTTP APIs.
- How do I install gatling?
- Install and run the Maven starter project (put a simulation in src/test/java/example/): ./mvnw gatling:test
- Where can I get gatling?
- The source code and installation instructions are on GitHub: https://github.com/gatling/gatling
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open source load testing tool that lets you define HTTP and other protocol load tests as plain Python code, with a web UI.
Open-source load testing platform for HTTP APIs, WebSocket, Socket.io, gRPC and Playwright browser scenarios, scalable on AWS Lambda or Fargate.
A command-line tool and Go library for HTTP load testing that sends requests at a constant rate and reports latency statistics.
A DPDK-based network traffic generator and load testing tool for benchmarking L4 load balancers, gateways and servers.
Open-source load testing tool where performance tests are written as JavaScript and run from a Go binary.