Repolode
gatling

gatling/gatling

开源负载测试工具,用 Java、Kotlin、Scala、JavaScript 或 TypeScript 以代码编写性能测试场景。

可替代:LoadRunnerJMeter

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. 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 数据每日更新。

相关项目