Repolode
six-ddc

six-ddc/plow

基于 Go 的 HTTP(S) 压测命令行工具,提供终端实时显示和 Web 图表。

Star
4,515
Fork
154
未关闭 Issue
20
最近提交
5天前

这是什么?

Plow 是一个用 Go 编写的 HTTP(S) 命令行压测工具。它以指定的并发连接数发送请求,在测试过程中实时计算延迟统计、直方图和分位数,并同时输出到终端和实时 Web 页面。测试可以按固定时长、固定请求数运行,也可以按 Ctrl-C 随时中断。

底层使用 fasthttp 客户端库,而不是 Go 标准库的 net/http。直方图和分位数采用流式算法实时计算,内存和 CPU 开销较低。开启追踪后,可以把单个请求的耗时拆分为 DNS、连接、TLS、写入、首字节等待和读取等阶段。

请求可自定义方法、请求头、请求体(支持从文件读取,也可流式发送)和客户端 TLS 证书。工具还支持限速、逐步加压、SOCKS5 和 HTTP 代理、Unix 域套接字以及 JSON 输出。

核心功能

  • 01终端和 Web 页面同时实时显示延迟统计、直方图和分位数。
  • 02支持固定并发数、固定请求数或固定时长三种测试方式。
  • 03可按 DNS、连接、TLS、写入、首字节和读取等阶段追踪延迟。
  • 04支持自定义请求方法、请求头、从文件读取请求体及客户端 TLS 证书。
  • 05支持限速、逐步加压、SOCKS5 与 HTTP 代理,并可输出 JSON。

适用场景

  • 在发布前对 HTTP 接口或 Web 服务进行压力测试。
  • 比较不同接口或服务端配置下的响应延迟。
  • 定位慢请求主要耗时在 DNS、连接还是首字节等待阶段。

快速上手

  1. 1

    使用 Go 安装 plow

    go install github.com/six-ddc/plow@latest
  2. 2

    使用 20 个连接对 URL 进行压力测试

    plow http://127.0.0.1:8080/ -c 20 -n 10000 -d 10s

使用前须知

  • 仅支持 HTTP(S) 压力测试,不支持其他协议。

收录于专题

标签

常见问题

plow 是什么?
基于 Go 的 HTTP(S) 压测命令行工具,提供终端实时显示和 Web 图表。 Plow 是一个用 Go 编写的 HTTP(S) 命令行压测工具。它以指定的并发连接数发送请求,在测试过程中实时计算延迟统计、直方图和分位数,并同时输出到终端和实时 Web 页面。测试可以按固定时长、固定请求数运行,也可以按 Ctrl-C 随时中断。
plow 可以免费使用吗?用的什么许可证?
plow 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
plow 还在维护吗?
活跃维护中。plow 最近一次提交是在 2026年10月17日。
plow 适合用来做什么?
在发布前对 HTTP 接口或 Web 服务进行压力测试。 比较不同接口或服务端配置下的响应延迟。 定位慢请求主要耗时在 DNS、连接还是首字节等待阶段。
plow 怎么安装和运行?
使用 Go 安装 plow: go install github.com/six-ddc/plow@latest 使用 20 个连接对 URL 进行压力测试: plow http://127.0.0.1:8080/ -c 20 -n 10000 -d 10s
在哪里获取 plow?
源代码和安装说明在 GitHub 上:https://github.com/six-ddc/plow

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目