最近在工作中需要一个高性能的压力测试工具,但因为服务使用的是一种自定义的 RPC 协议,常见的压测工具都用不了,就想找一找有没有通用的,类似 Criterion 之于性能测试那样可以快速做压力测试的库。但找了一圈发现没有合适的,为数不多的几个项目要么太过简陋,无法实现稍微复杂一些的 work load,要么就是专门针对 http 的,没法用在其他场景。于是自己动手写了一个,https://github.com/wfxr/rlt,最近趁着假期打磨了一下,发布到了 crates.io 上,文档和示例基本都齐全了。下面是对 rlt 的一个简介,欢迎小伙伴尝试~
rlt 提供了一种简单灵活的方式来快速构建压力测试工具。它被设计为一个通用的压力测试框架,你可以把它用在各种服务的压测上,比如 http, grpc, thrift, database 或者其他自定义的协议。你可以比较方便地实现自定义的工作负载,性能和资源使用方面也做了大量的优化,可以匹敌任何一款流行的压测工具。另外我个人很喜欢设计优秀的 CLI 工具,所以 rlt 也提供了一个带实时反馈的 TUI 界面,你可以几十行代码快速实现下面 demo 演示的效果:
demo
Repo 地址:https://github.com/wfxr/rlt
Crate 地址:https://crates.io/crates/rlt