开源负载测试工具,用普通 Python 代码编写 HTTP 等协议的压测场景,并提供 Web 界面。
- Star
- 25,225
- Fork
- 1,428
- 未关闭 Issue
- 125
- 最近提交
- 上个月
这是什么?
Vegeta 是一款 HTTP 压力测试工具,核心特点是以恒定的请求速率持续打向目标服务。它既可以作为命令行程序使用,attack、encode、report、plot 等子命令能通过 UNIX 管道串联;也可以作为 Go 库引入,用代码驱动压测。
目标请求可以写成类似 HTTP 报文的纯文本列表,也可以由其他程序以 JSON 流的形式动态生成。attack 命令支持设置速率、时长、并发 worker 数、超时、TLS 证书、HTTP/2、长连接、连接数上限和自定义 DNS 解析器等。结果可输出为文本或 JSON 报告、按区间统计的直方图、HDR 直方图数据,或生成可交互缩放的 HTML 延迟曲线图。
压测过程中,Vegeta 还可以开启内置的 Prometheus 指标导出。分布式场景下,可以把目标速率分摊到多台机器上运行,再合并各自的结果文件生成报告。
核心功能
- 01以恒定速率发起 HTTP 压测,可用命令行或 Go 库调用。
- 02目标请求支持文本列表或 JSON 流输入,也支持惰性读取动态生成的目标。
- 03提供延迟分位数、状态码分布和错误汇总等报告。
- 04支持文本、JSON、直方图和 HDR 直方图等输出格式。
- 05可生成交互式 HTML 延迟时序图。
- 06压测期间可开启内置 Prometheus 指标导出。
- 07支持 HTTP/2、TLS 客户端证书、自定义请求头和 DNS 解析器。
适用场景
- 在固定请求速率下测量 API 接口的延迟表现。
- 把目标速率分摊到多台机器,进行分布式压力测试。
- 通过脚本或数据管道向服务输入动态生成的请求。
- 借助 Prometheus 导出器在 Grafana 中监控压测指标。
快速上手
- 1
在 macOS 上用 Homebrew 安装
brew update && brew install vegeta - 2
在 Arch Linux 上用 pacman 安装
pacman -S vegeta - 3
运行测试:以每秒 50 次的速率发送 GET 请求,持续 5 秒,并输出报告
echo "GET http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report
使用前须知
- 其他平台的安装需要从发布页面获取预编译文件,设置方式因操作系统而异。
收录于专题
标签
常见问题
- vegeta 是什么?
- 一款用于 HTTP 压力测试的命令行工具与 Go 库,以恒定速率发送请求并输出延迟统计。 Vegeta 是一款 HTTP 压力测试工具,核心特点是以恒定的请求速率持续打向目标服务。它既可以作为命令行程序使用,attack、encode、report、plot 等子命令能通过 UNIX 管道串联;也可以作为 Go 库引入,用代码驱动压测。
- vegeta 可以免费使用吗?用的什么许可证?
- vegeta 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- vegeta 还在维护吗?
- 半年内有更新。vegeta 最近一次提交是在 2026年9月24日。
- vegeta 适合用来做什么?
- 在固定请求速率下测量 API 接口的延迟表现。 把目标速率分摊到多台机器,进行分布式压力测试。 通过脚本或数据管道向服务输入动态生成的请求。 借助 Prometheus 导出器在 Grafana 中监控压测指标。
- vegeta 怎么安装和运行?
- 在 macOS 上用 Homebrew 安装: brew update && brew install vegeta 在 Arch Linux 上用 pacman 安装: pacman -S vegeta 运行测试:以每秒 50 次的速率发送 GET 请求,持续 5 秒,并输出报告: echo "GET http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report
- 在哪里获取 vegeta?
- 源代码和安装说明在 GitHub 上:https://github.com/tsenart/vegeta
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
2.8万+3 本周3262PythonMIT更新于 9小时前
开源 Java 应用,用于对 Web 应用及其他服务进行负载测试和性能测量。
9577+4 本周2294JavaApache-2.0更新于 24天前
用 Go 编写的跨平台 HTTP(S) 命令行压测工具,基于 fasthttp 实现高吞吐请求。
6844+1 本周332GoMIT更新于 15天前
用 Rust 编写的命令行 HTTP 压测工具,灵感来自 hey,带实时终端界面。
1.1万+3 本周306RustMIT更新于 3天前
基于 Go 的 HTTP(S) 压测命令行工具,提供终端实时显示和 Web 图表。
4514154GoApache-2.0更新于 8天前
基于 DPDK 的高性能网络流量生成与压测工具,用于测试四层负载均衡、网关和服务器。
5651562CApache-2.0更新于 3个月前