开源 Java 应用,用于对 Web 应用及其他服务进行负载测试和性能测量。
gatling/gatling
开源负载测试工具,用 Java、Kotlin、Scala、JavaScript 或 TypeScript 以代码编写性能测试场景。
可替代:LoadRunner
JMeter
- Star
- 6,959
- Fork
- 1,210
- 未关闭 Issue
- 18
- 最近提交
- 前天
这是什么?
Gatling 是一款把负载测试写成代码的工具。你可以用 Java、Kotlin、Scala、JavaScript 或 TypeScript 编写仿真场景(simulation),通过 Maven、Gradle、sbt 或 npm 插件在本地或 CI 中运行,并生成包含响应时间分位数、吞吐量和每个请求错误数的 HTML 报告。断言可以在响应时间或错误率超过阈值时让构建失败。
虚拟用户运行在基于 Netty 的非阻塞引擎上,而不是操作系统线程,单台机器即可产生可观的压力。Apache 2.0 许可的社区版支持 HTTP/1.1、HTTP/2、WebSocket、Server-Sent Events 和 JMS,且无数量限制。gRPC、MQTT 和 GraphQL 则采用独立的组件许可,免费版限制为 5 个并发用户、5 分钟测试。
项目还提供可将浏览器会话或 HAR 文件转为仿真脚本的录制器,支持 CSV、JSON 和数据库数据源,并同时支持开放与封闭两种负载模型。商业版 Enterprise Edition 增加了托管压力发生器、团队协作和趋势看板。
核心功能
- 01使用 Java、Kotlin、Scala、JavaScript 或 TypeScript 以代码编写负载测试场景。
- 02通过 Maven、Gradle、sbt 或 npm 运行测试,可接入 CI 流水线。
- 03生成包含响应时间分位数、吞吐量和错误的 HTML 报告。
- 04通过响应时间和错误率断言,在指标超标时让构建失败。
- 05社区版支持 HTTP/1.1、HTTP/2、WebSocket、Server-Sent Events 和 JMS。
适用场景
- 在发布前检查 API 响应时间,并在 CI 中拦截性能回归。
- 无需大规模压测机集群,即可对 Web 服务模拟大量并发用户。
- 录制浏览器会话,快速生成贴近真实的压测脚本。
- 对 WebSocket 或 Server-Sent Events 接口与常规 HTTP 接口进行负载测试。
快速上手
- 1
安装并运行 Maven 入门项目(将模拟脚本放入 src/test/java/example/)
./mvnw gatling:test
使用前须知
- gRPC、MQTT 和 GraphQL 采用 Gatling 企业组件许可证,在社区版中限制为 5 个并发用户和 5 分钟测试。
- Kafka、AMQP、SFTP、FTP 和 JDBC 依赖社区维护的第三方插件。
标签
常见问题
- gatling 是什么?
- 开源负载测试工具,用 Java、Kotlin、Scala、JavaScript 或 TypeScript 以代码编写性能测试场景。 Gatling 是一款把负载测试写成代码的工具。你可以用 Java、Kotlin、Scala、JavaScript 或 TypeScript 编写仿真场景(simulation),通过 Maven、Gradle、sbt 或 npm 插件在本地或 CI 中运行,并生成包含响应时间分位数、吞吐量和每个请求错误数的 HTML 报告。断言可以在响应时间或错误率超过阈值时让构建失败。
- gatling 可以免费使用吗?用的什么许可证?
- gatling 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- gatling 还在维护吗?
- 活跃维护中。gatling 最近一次提交是在 2026年11月5日。
- gatling 适合用来做什么?
- 在发布前检查 API 响应时间,并在 CI 中拦截性能回归。 无需大规模压测机集群,即可对 Web 服务模拟大量并发用户。 录制浏览器会话,快速生成贴近真实的压测脚本。 对 WebSocket 或 Server-Sent Events 接口与常规 HTTP 接口进行负载测试。
- gatling 怎么安装和运行?
- 安装并运行 Maven 入门项目(将模拟脚本放入 src/test/java/example/): ./mvnw gatling:test
- 在哪里获取 gatling?
- 源代码和安装说明在 GitHub 上:https://github.com/gatling/gatling
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
开源负载测试工具,用普通 Python 代码编写 HTTP 等协议的压测场景,并提供 Web 界面。
开源负载测试平台,支持 HTTP、WebSocket、gRPC 及 Playwright 浏览器场景,可在 AWS Lambda 或 Fargate 上分布式运行。
一款用于 HTTP 压力测试的命令行工具与 Go 库,以恒定速率发送请求并输出延迟统计。
基于 DPDK 的高性能网络流量生成与压测工具,用于测试四层负载均衡、网关和服务器。
开源负载测试工具,用 JavaScript 编写性能测试脚本,由 Go 编写的程序执行。