Golang Go语言中开源了一个简单的Http服务压测工具Alex,自带web ui
Alex
Alex 是基于 vegeta library 和 boom 封装的压力测试 web UI 。 Vegeta 提供稳定的 qps 压力源, boom 提供稳定的并发数压力源。
github 地址 https://github.com/ireaderlab/alex
Alex 架构图
Alex 主要功能
- 保存压力测试参数以便反复压测
- 保存压力测试报告以便后续查看和分享
- 提供了简单直接的图形和文字报告
- 可以同时对多个 http 接口进行压力测试
- 可以同时对集群内多个 host:port 对进行压测
- 使用多组调用参数避免压测时出现的数据热点问题
- 使用步骤设置,生成渐进式的压力源
- 提供简单的压测机器系统状态实时显示功能
Alex Limitations
- Alex 运行在单一进程里,如果你需要分布式的压测环境,就得部署多个节点,压测时需要多人同时操作。
- Vegeta 在压力过载时没有提供立即停止的方法。这就需要你细心设计压测步骤,仔细观察系统状态避免系统过载。
- Qps 和并发数不宜过大。我曾经使用 Alex 工具单进程测试了 HelloWorld 的 web 程序每个请求吐出 1500 字节, qps 最多可以达到 60000 ,基本让千兆网卡打满。
- 在大型压力测试下,尽量避免 Gzip 解压缩。解压缩会消耗大量的 cpu 资源,会导致压测报告不准确。你可以通过部署多个节点来进行大型压力测试。
- 只支持 Http 协议。 Https 协议不打算支持,因为加密解密也同样会消耗大量 cpu 资源,导致报告不准确。
- 报告只是提供一种性能参考,要勇于对报告进行质疑。
- Alex 虽然有如此诸多限制,这不影响它的日常使用。
安装
install mongodb
install golang # 1.4+ is required
go get github.com/go-martini/martini
go get github.com/tsenart/vegeta
go get gopkg.in/mgo.v2
go get github.com/shirou/gopsutil
godep restore
git clone https://github.com/shellquery/alex.git
cd alex
go build
./alex
./alex -c config.json
open browser
http://localhost:8000/
配置 config.json
{
"BindAddr": "localhost:8000",
"MongoUrl": "mongodb://localhost:27017/alex",
"Teams": [
"python",
"java",
"php",
"go"
]
}
引用
- 棒棒的 vegeta https://github.com/tsenart/vegeta
- 简单直接的 boom https://github.com/rakyll/boom
截屏
Golang Go语言中开源了一个简单的Http服务压测工具Alex,自带web ui
更多关于Golang Go语言中开源了一个简单的Http服务压测工具Alex,自带web ui的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
和 shell 脚本+ab 相比,有什么优势?
更多关于Golang Go语言中开源了一个简单的Http服务压测工具Alex,自带web ui的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
不用写代码,团队成员所有人都可以直接用浏览器就可以使用,算是能解放点生产力吧
每次压测都会生成压测报告,拿报告的链接贴给他人,就可以分享压测报告了
挺好
滋磁
赞一个
关于Golang中开源的Http服务压测工具Alex,以下是我的专业回复:
Alex确实是一个值得关注的开源项目,它基于Golang开发,旨在提供一个带有Web UI的HTTP基准测试Web应用。这个工具结合了Vegeta和Boom两个强大的基准测试库,为用户提供了一个简单但功能强大的界面来执行和分析HTTP基准测试。
通过Alex的Web UI,用户可以轻松地设置和管理测试参数,如并发数、请求速率、测试持续时间等。在测试过程中,Alex会实时显示测试结果,包括吞吐量、响应时间、错误率等关键指标,帮助用户快速定位性能瓶颈。
此外,Alex还支持保存测试参数和测试报告,方便用户在未来进行复现和对比。其图形和文本报告功能也提供了直观的性能分析手段。
对于需要进行Web服务性能测试、负载均衡测试或压力测试的开发者和测试人员来说,Alex无疑是一个强大的助手。它简化了测试流程,提高了测试效率,是Golang生态中一个不可或缺的开源工具。
如果你对Alex感兴趣,可以访问其项目地址(https://gitcode.com/gh_mirrors/alex1/alex)了解更多信息,并按照项目文档进行安装和使用。