
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 是一款“从单机到集群”的压测工具,不花时间配置、不依赖外部组件,非常适合开发阶段接口调优、性能回归、系统瓶颈排查和高并发预演。
1 lesismal 86 天前 赞,star |
2 gesse 85 天前 |
3 Mageblade 85 天前 到目前为止自己用过最好用的免费压测工具非 locust 莫属,可以编写压测脚本模拟真实的业务场景,也可以支持分布式压测。楼主这个工具如果能支持脚本的话倒是可以一战。 |
4 millken 85 天前 和 k6 比有何优势 |
6 gvison OP @millken perftest 与 K6 的侧重点不同,perftest 侧重从单测到集群测试都比较简单,不依赖第三方组件。使用 K6 测试简单 api 需要写 js 脚本,对于不熟悉 js 的后端来说不够友好,当然对于复杂的负载测试挺好的。因为 perftest 没有使用脚本,性能比 K6 好。 |
7 millken 85 天前 k6 的报告输出可以自定义,配合 k8s 及 grafana 实现压测数据实时查看非常棒。 JS 脚本我觉得也是最大的优势,给了开发者以最大的灵活度,特别是动态参数及多接口的情况下。 我认为可以考虑支持脚本( QuickJS 集成也容易)以及多种报告格式支持 |
8 millken 85 天前 此外压测策略也是一个特色,如模拟真实情况(前 1 分钟 10 并发, 后面 3 分钟 50 并发, 再来 5 分钟的 100 并发) |