开源负载测试工具,用 JavaScript 编写性能测试脚本,由 Go 编写的程序执行。
artilleryio/artillery
开源负载测试平台,支持 HTTP、WebSocket、gRPC 及 Playwright 浏览器场景,可在 AWS Lambda 或 Fargate 上分布式运行。
- Star
- 9,117
- Fork
- 576
- 未关闭 Issue
- 491
- 最近提交
- 18天前
这是什么?
Artillery 是一个面向开发者和测试团队的负载测试工具,用于观察 API 和 Web 服务在高流量下的表现。测试以场景(scenario)的形式定义,可以通过请求链、多步骤和事务来模拟真实的用户行为,而不只是反复请求单个接口。
除了普通 HTTP,它还支持 WebSocket、Socket.io、gRPC 和 Kinesis,并可通过 Playwright 驱动无头浏览器,对前端流程进行负载测试。项目集成了常见的监控、可观测性和 CI/CD 工具,同时提供插件 API,允许用 Node.js 模块扩展功能。
在大规模测试时,压力可以分布到 AWS Lambda 或 AWS Fargate 上运行,无需自行搭建压测节点。代码主体采用 MPL 2.0 许可,部分 Azure 相关模块采用 BSL 许可,生产环境使用需要商业授权。
核心功能
- 01支持对 HTTP API、WebSocket、Socket.io 和 gRPC 进行负载测试。
- 02可通过 Playwright 运行基于真实无头浏览器的压测。
- 03支持在 AWS Lambda 或 AWS Fargate 上分布式执行测试。
- 04通过请求链和事务模拟多步骤的用户操作流程。
- 05集成 20 多种监控、可观测性和 CI/CD 工具。
- 06提供插件 API,并可使用 Node.js 模块进行扩展。
适用场景
- 发布前检查 REST 或 GraphQL API 在高峰流量下的稳定性。
- 使用真实无头浏览器对 Web 前端的关键用户流程进行压测。
- 在 CI/CD 流水线中执行性能回归测试。
- 无需管理服务器,借助 Serverless 基础设施产生大规模负载。
使用前须知
- 部分 Azure 专用模块采用 BSL 许可证,在 Azure 上进行商业或生产使用需要商业许可证。
- 大部分代码采用 MPL 2.0 许可证,因此整个仓库同时涉及两种许可条款。
收录于专题
标签
常见问题
- artillery 是什么?
- 开源负载测试平台,支持 HTTP、WebSocket、gRPC 及 Playwright 浏览器场景,可在 AWS Lambda 或 Fargate 上分布式运行。 Artillery 是一个面向开发者和测试团队的负载测试工具,用于观察 API 和 Web 服务在高流量下的表现。测试以场景(scenario)的形式定义,可以通过请求链、多步骤和事务来模拟真实的用户行为,而不只是反复请求单个接口。
- artillery 可以免费使用吗?用的什么许可证?
- artillery 以 MPL-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- artillery 还在维护吗?
- 活跃维护中。artillery 最近一次提交是在 2026年10月20日。
- artillery 适合用来做什么?
- 发布前检查 REST 或 GraphQL API 在高峰流量下的稳定性。 使用真实无头浏览器对 Web 前端的关键用户流程进行压测。 在 CI/CD 流水线中执行性能回归测试。 无需管理服务器,借助 Serverless 基础设施产生大规模负载。
- 在哪里获取 artillery?
- 源代码和安装说明在 GitHub 上:https://github.com/artilleryio/artillery
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
开源 API 开发工具,支持 REST、GraphQL、WebSocket 等协议,提供网页、桌面和命令行版本。
用 Go 编写的原生本地优先 API 客户端,支持 REST、gRPC、GraphQL 和 WebSocket,并内置流量代理。
开源 Java 应用,用于对 Web 应用及其他服务进行负载测试和性能测量。
开源负载测试工具,用 Java、Kotlin、Scala、JavaScript 或 TypeScript 以代码编写性能测试场景。
基于 Docker 部署的无头浏览器服务,Puppeteer 和 Playwright 脚本可通过 WebSocket 连接使用。