14 个版本 (7 个破坏性版本)
0.8.4 | 2023 年 8 月 19 日 |
---|---|
0.8.2 | 2022 年 11 月 23 日 |
#34 在 性能分析
每月 52 次下载
35KB
441 行
调查员
用 Rust 编写的简单快速 HTTP 负载测试工具。所有实际功能都由 inquisitor-core 提供,而此库包含命令行可执行文件。
此项目目前正在开发中。
构建和安装
从源码
克隆仓库并构建
$ git clone https://github.com/yds12/inquisitor
$ cd inquisitor
$ cargo build --release
使用 Cargo
使用 cargo
进行安装
$ cargo install inquisitor
运行
例如,您可以使用以下命令运行
$ inquisitor -n 1000 -c 10 https://localhost:8080/test
这将访问指定的 URL,(至少和大约) -n
次数,使用 -
个 HTTP 连接池(并行,每个连接一个 tokio
任务)。这些参数需要根据您的环境进行调整。
另一种运行测试的方法是限制持续时间而不是总请求数,通过 -
参数(以下将其限制为 15 秒)
$ inquisitor -d 15s https://localhost:8080/test
另一个有用的选项是 -
,用于不安全连接,忽略 TLS 证书。
您还可以执行 POST 请求(使用 -
用于请求体)
$ inquisitor -d 1m --method post -b "hello" https://localhost:8080/test
要设置请求头,您可以使用 -
选项(每个头一次)
$ inquisitor -d 1m --method post -b "hello" \
-H "Content-Type:text/plain" -H "User-Agent:Inquisitor/8.0" \
https://localhost:8080/test
有关更多有用的选项,请键入
$ inquisitor --help
以下是一个示例输出
$ inquisitor -d 20s https://localhost:8080/test
total time: 20.0 s
errors: 0/651526
throughput: 32574 req./s
response times:
mean 362 us
st.dev 362 us
min 68 us
max 18.8 ms
latencies:
50% 316 us
75% 522 us
90% 546 us
95% 571 us
99% 843 us
99.9% 5.54 ms
动机
在Rust中,这个类别还有一些其他工具,例如 Goose 和 Drill。 Inquisitor 更多地受到 wrk 和 siege 等工具的启发,而不是Goose、Drill或k6,这意味着我们希望我们的工具是
- 高效的:能够以硬件允许的每秒请求数(RPS)生成尽可能多的请求;
- 简单的:我们并不是试图提供完整的特性;
- 无脚本:对于这一点,你应该看看优秀的 k6 或其他提到的工具。
在我尝试的工具中,到目前为止,能够生成最高RPS的是 wrk
,在我的硬件上可以达到大约30-70k RPS。这些数字比我所提到的某些工具的RPS大得多,比其他一些工具高几个数量级。这是 Inquisitor 的主要动机:达到 wrk
的RPS水平,同时用Rust编写,并在可能的情况下逐步添加社区认为有用的功能。
版本控制
我们将遵循语义版本控制。在1.0之前,当UI/CLI有重大变化时(例如,CLI选项的更改或删除,输出格式的更改),我们将增加次要版本号。对于不影响程序行为的新功能(例如,添加不改变程序行为的新的CLI选项),以及小补丁,我们只需增加补丁版本号。
链接
依赖项
~10–24MB
~368K SLoC