3 个版本
0.1.2 | 2024 年 1 月 20 日 |
---|---|
0.1.1 | 2024 年 1 月 20 日 |
0.1.0 | 2024 年 1 月 19 日 |
#1430 在 命令行实用程序
每月 22 次下载
245KB
790 代码行
⚓ Ballast
Ballast 是一个用于 API 快照负载测试的工具。
https://github.com/synoet/ballast/assets/10552019/25572acb-1f67-49fc-b88a-97d6a02be671
简介
安装
cargo install ballast
设置
在您的目录中创建一个 ballast.json
配置文件。
{
"endpoints": [
{
"name": "GET test",
"url":"https://127.0.0.1:8080/test",
"method": "GET",
"concurrent_requests": 5,
"cycles": 10,
"threshold": 100,
"expected_status": 500,
},
{
"name": "POSR test",
"url":"https://127.0.0.1:8080/test",
"method": "POST",
"concurrent_requests": 5,
"cycles": 10,
"threshold": 100,
"expected_status": 200,
"headers": {
"Content-Type": "application/json"
},
"body": {
"payload": {}
}
},
]
}
运行
ballast # in the directory with ballast.json
为什么?
什么是快照测试?
快照测试是一种常用于测试 UI 框架(如 Jest + React)的技术。它涉及在特定点捕获 DOM 的“快照”,并在进行更改后将其用作比较的参考。
这如何应用于 API?
采用类似的方法,在运行负载测试时,ballast 会自动生成测试的快照。通过比较更改后的性能与快照,API 开发者可以评估这些更改对性能的影响。
配置
配置测试
name
:您要给测试起的名字。
url
:您正在测试的 HTTP 端点。
method
:GET
| POST
| PUT
| DELETE
| PATCH
| OPTIONS
concurrent_requests
:每个测试周期运行的并发请求数量,您可以将测试中的总请求数量视为 concurrent_requests * cycles
cycles
:测试中的周期数
threshold
:这是测试成功可接受的平均响应时间偏差。默认为 250ms
。如果所有其他预期值都匹配,则使用响应时间来衡量请求的成功。
headers
(可选):要包含在请求中的标题映射
body
(可选):要包含在请求中的 JSON 负载
expected_status
(可选):如果端点正常工作,则预期的状态
expected_body
(可选):端点的预期响应
expected_headers
(可选):端点的预期响应头
ramp
(可选):是否应该逐步增加请求(默认为 true)
依赖
~8–24MB
~329K SLoC