熟悉小编的朋友知道小编最近又转到了测试岗位的工作,在进行性能测试的时候由于 Jmeter 多线程模型占用了极大量的资源才能 打出并发量比较高的测试压力,于是找到了 Python 的 Locust(蝗虫)框架,用起来还算顺手,但资源占用对于在办公室里的笔记本电脑来说实在是弱了些。另外,由于 Python 的 GIL 原因,使得Locust 在单机上只能使用单核单进程,要想利用多核只能开启 Locust 的分布式配置
于是,在 @PotatoTooLarge 的指点下,发现 Goose这个 Rust 的框架,它由如下特点:
文档齐全,一如 Rust 社区的作用
基于 Reqwest,可以异步发起请求
Locust 报告里有的指标,Goose 的报告里面基本都有
资源消耗极小,适合在没有资源的情况下发起测试压力
但是,该框架仍有以下不足:
没有配置文件(以及profile)
没有 locust 的实时监控 WebUI
https://github.com/tag1consulting/goose
该仓库下包含了一个 TurboWish/tokio-console 的实现,它时一个是分析与调试的工具,为异步 Rust 程序设计。分析套件包括几个组件:
一个 wire protocol,为了串流来自被分析应用到分析工具的分析数据。这个格式是用了 gPRC 和 protocol buffer 定义的,为了高效地在 wire 上传送,以及为了保证不同数据生产者和消费者之间的互操作性。 console-api
库包含了 wire format 的自动生成代码,用的是 tonic gPRC。此外,使用其他 gPRC 代码生成器的项目(包括使用其他语言实现的!)能够自行依赖 protobuf 定义。
从进程收集分析数据并通过 wire format 暴露它的instrumentation。仓库中的 console-subscriber
库包含了作为tracing-subscriber 层的 instrumentation 端API,给用 Tokio 和 tracing 的项目使用。
用来展现和探索分析数据的工具,使用 console wire protocol 实现成了gPRC 客户端。console
库实现了一个非交互式的命令行工具来消费这些山上,但是其他实现,例如图形化的或者基于web 的工具,也是可用的。