英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。
作为代码的负载测试
使用 Java、JavaScript、TypeScript、Kotlin 或 Scala 编写测试。
在你的机器或 CI 上运行它们,并在性能退化时使构建失败。
文档
·
社区论坛
·
企业版
·
实时演示
什么是Gatling?
Gatling 是一个开源的负载测试工具。你可以将测试场景(“模拟”)以代码形式编写,针对你的服务运行这些场景,并获得一个详细的 HTML 报告,其中包含响应时间、吞吐量和错误信息。此仓库是 Gatling 社区版,在 Apache 2.0 许可下发布,可免费使用,包括商业用途。
Write a simulation -> Run it locally or in CI -> Read the report -> Catch regressions before release
为什么选择 Gatling
一个不需要集群的引擎。 虚拟用户是在基于 Netty 的非阻塞引擎上运行的轻量级消息,而不是操作系统线程。基于每个用户一个线程的工具需要一个负载生成器集群才能达到相同的负载。
测试就是代码,存在你的仓库中。 可读的差异、可审查的拉取请求,以及与所测试应用相同的审查流程。没有专有的 XML 格式,也无需在 GUI 与你的流水线之间进行导出步骤。
一次编写,到处运行。 相同的模拟可以在笔记本电脑和持续集成环境中运行,通过 Maven、Gradle、sbt 或 npm 插件,并可对响应时间和错误率进行断言。
开源,Apache 2.0。 无需账号、无需注册,对此仓库中的任何协议的测试持续时间和虚拟用户数没有限制。已覆盖 300,000 家公司和 3,000 万次下载。
“如果你想每秒处理数十万笔交易,在 Gatling 中实现这并不难。你不需要进行调优,也不需要请专家。任何刚入门的开发者都能轻松应对这种负载。”
Chaitanya Bhatt,Intuit 首席工程师 · 阅读客户案例
入门
请按照官方教程操作:安装、你的第一个模拟以及运行它,适用于所有支持的语言。
一个完整的 Java 模拟。它向一个端点发送 10 个用户,如果任何请求失败,则模拟失败:
package example;
import static io.gatling.javaapi.core.CoreDsl.*;
import static io.gatling.javaapi.http.HttpDsl.*;
import io.gatling.javaapi.core.*;
public class BasicSimulation extends Simulation {
{
setUp(
scenario("Scenario")
.exec(http("Session").get("/session"))
.injectOpen(atOnceUsers(10))
).protocols(http.baseUrl("https://api-ecomm.gatling.io"))
.assertions(global().failedRequests().count().lt(1L));
}
}
将其放入 Maven 入门项目 的 src/test/java/example/ 中并运行:
./mvnw gatling:test
此存储库中有什么
| 层 | 你得到的 |
|---|---|
| 编写 | 记录器,将浏览器会话或 HAR 文件转换为模拟。用于 CSV、JSON 和数据库的 feeder。检查状态码、响应体、头信息和时间 |
| 运行 | 基于 Netty 的非阻塞引擎。HTTP/1.1 和 HTTP/2、WebSocket、服务器发送事件和JMS。开放和封闭工作负载模型 |
| 分析 | 每次运行生成的HTML 报告,包含百分位数、随时间的吞吐量和每个请求的错误。断言在阈值被突破时会使构建失败 |
| 自动化 | Maven、Gradle、sbt 和 npm 插件。在命令行中运行,适用于你已经使用的任何 CI 系统 |
软件开发工具包
| SDK | 语言 | 在哪里 |
|---|---|---|
| Java SDK | Java,以及 JVM 上的 Kotlin 和 Scala | 本仓库。任何从 11 到 25 的 OpenJDK LTS 版本,支持 Maven、Gradle 或 sbt |
| JavaScript SDK | JavaScript, TypeScript | gatling/gatling-js |
两者使用相同的引擎并生成相同的报告。
协议
HTTP/1.1、HTTP/2、WebSocket、服务器发送事件(Server-Sent Events)和 JMS 在此以 Apache 2.0 协议发布,无任何限制。
gRPC、MQTT 和 GraphQL 属于 Gatling Enterprise 组件许可的单独依赖,而非 Apache 2.0 协议。在社区版中,它们的并发用户数和测试时长分别限制为 5 和 5 分钟。GraphQL 可在 Java SDK(Java、Kotlin、Scala)中使用,但尚未在 JavaScript SDK 中提供。
Kafka、AMQP、SFTP、FTP 和 JDBC 由社区维护的第三方插件覆盖,而非由 Gatling 官方维护。
社区与支持
贡献
Gatling 是开源的,并将继续保持开源。在提交拉取请求之前,请阅读贡献指南。
许可证
Gatling 社区版根据 Apache 2.0 许可证授权。gRPC、MQTT 和 GraphQL 组件根据 Gatling 企业组件许可证分发。报告使用 Highcharts 构建,依据 Highsoft AS 授予的许可证。
Gatling 企业版
以上内容都仅从此存储库运行。Gatling 企业版是基于相同引擎的商业产品,适用于需要从管理或私有基础设施生成负载并在组织内部共享结果的团队。
| 社区版 | 企业版 | |
|---|---|---|
| 许可证 | Apache 2.0,免费 | 商业 |
| 负载生成 | 您的机器 | 托管生成器,或通过私有位置使用您自己的 AWS、Azure、GCP 或 Kubernetes 账户 |
| 报告 | 每次运行的 HTML 报告 | 实时仪表板、运行比较、随时间的趋势、SLO 跟踪,以及AI 分析 |
| 协作 | 不包括 | 团队、用户角色、SSO 和共享报告 |
| 集成 | 仅构建工具插件 | CI/CD、APM、通知和 SSO 集成 |
| gRPC、MQTT 和 GraphQL | 5 用户,5 分钟测试 | 无限制 |
免费试用企业版 14 天,无需信用卡。
AI 扩展
具备技能和 MCP 服务器,使 AI 编程助手能够搭建 Gatling 项目、转换 JMeter 测试计划和 LoadRunner 脚本,并从您的编辑器驱动 Gatling Enterprise。打包为 Claude Code 插件,并可在支持技能或本地 MCP 服务器的任何 LLM 客户端中使用。它们需要 Gatling Enterprise API 令牌。
| 文档 | 涵盖内容 |
|---|---|
| 概览 | 安装、需求,以及扩展包含的内容 |
| Gatling 功能 | 启动项目、构建工具、代码配置、JMeter 和 LoadRunner 转换器 |
| Gatling MCP 服务器 | 以自然语言查询团队、包、模拟程序和负载生成器位置 |
| AI 助手 | 用于 VS Code、Cursor、Windsurf 和 Antigravity 的 IDE 集成 |
- 本文标题:gatling - 现代负载测试即代码化
- 本文链接:https://www.cn121.com/mobile/gatling-gatling.html
- 原项目:gatling/gatling 版权归原作者 gatling 及贡献者所有
- 收录信息:本站于 2026-10-10 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 Apache-2.0(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。本站对原文仅作排版与图片地址适配, 并保留原项目的 NOTICE 与署名要求。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 gatling/gatling。
- 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。