HTTP/1.1、HTTP/2、HTTP/3、WebSocket。安装很简单,只需一行命令:
go install github.com/go-dev-frame/sponge/cmd/sponge@latest
安装之后请看 perftest 的 使用指南。
单机压测执行命令示例:
# 指定总请求数
sponge perftest http --total=100000 --url=http://localhost:8080/user/1
# 指定压测时长
sponge perftest http --duration=30s --url=http://localhost:8080/user/1
当单机压测的能力不足时,使用集群压测,只需运行:
sponge perftest collector
然后在多台机器上执行:
sponge perftest agent --config=agent.yml
Collector 会自动汇总所有 Agent 的性能数据,并在 Web UI 实时展示,如下图所示:

对于大规模测试,手动管理节点是不现实的,因此提供了完整的 Kubernetes 部署脚本 perftest-deployment.yml,直接:
kubectl apply -f perftest-deployment.yml
即可启动 Collector + Agent 集群压测。
想测试消息推送、IM 、通知系统性能?示例:
sponge perftest websocket --worker=100 --duration=1m \
  --body='{"msg":"hello"}' --url=ws://localhost:8080/ws
QPS 、收发延迟、消息统计全都有。
perftest 是一款“从单机到集群”的压测工具,不花时间配置、不依赖外部组件,非常适合开发阶段接口调优、性能回归、系统瓶颈排查和高并发预演。
|  |      1lesismal      20 天前 赞,star | 
|  |      2gesse      20 天前 | 
|      3Mageblade      20 天前 到目前为止自己用过最好用的免费压测工具非 locust 莫属,可以编写压测脚本模拟真实的业务场景,也可以支持分布式压测。楼主这个工具如果能支持脚本的话倒是可以一战。 | 
|      4millken      20 天前 和 k6 比有何优势 | 
|      6gvison OP @millken perftest 与 K6 的侧重点不同,perftest 侧重从单测到集群测试都比较简单,不依赖第三方组件。使用 K6 测试简单 api 需要写 js 脚本,对于不熟悉 js 的后端来说不够友好,当然对于复杂的负载测试挺好的。因为 perftest 没有使用脚本,性能比 K6 好。 | 
|      7millken      19 天前 k6 的报告输出可以自定义,配合 k8s 及 grafana 实现压测数据实时查看非常棒。 JS 脚本我觉得也是最大的优势,给了开发者以最大的灵活度,特别是动态参数及多接口的情况下。 我认为可以考虑支持脚本( QuickJS 集成也容易)以及多种报告格式支持 | 
|      8millken      19 天前 此外压测策略也是一个特色,如模拟真实情况(前 1 分钟 10 并发, 后面 3 分钟 50 并发, 再来 5 分钟的 100 并发) |