14 个版本 (7 个破坏性版本)

0.8.4 2023 年 8 月 19 日
0.8.2 2022 年 11 月 23 日

#34性能分析

Download history 12/week @ 2024-03-10 40/week @ 2024-03-31

每月 52 次下载

MIT 许可证

35KB
441

checks tests

调查员

用 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中,这个类别还有一些其他工具,例如 GooseDrillInquisitor 更多地受到 wrksiege 等工具的启发,而不是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