22 个版本 (7 个破坏性版本)
0.8.0 | 2024年7月23日 |
---|---|
0.6.3 | 2024年5月27日 |
0.4.0 | 2024年3月5日 |
0.1.0 | 2023年12月4日 |
#220 在 并发
每月下载 <124
75KB
1.5K SLoC
巴尔特
巴尔特(Balter)是巴尔特,即 巴尔特,一个负载测试器 的缩写,是一个灵活、高效、易于使用的负载/压力测试框架。巴尔特旨在最小化负载测试的概念开销,并基于 Tokio 和异步生态系统构建。
示例用法
use balter::prelude::*;
use std::time::Duration;
#[tokio::main]
async fn main() {
my_scenario()
.tps(500)
.error_rate(0.05)
.latency(Duration::from_millis(20), 0.99)
.duration(Duration::from_secs(30))
.await;
}
#[scenario]
async fn my_scenario() {
my_transaction().await;
}
#[transaction]
async fn my_transaction() -> Result<u32, String> {
// Some request logic...
Ok(0)
}
开发者说明
巴尔特存储库设置简单,易于开始开发。它使用 Nix 通过 shell.nix
(如果您还没有尝试 Nixaide,打开该文件,它将给您一些您可能需要的程序的思路)。否则,巴尔特与所有默认的 cargo
命令一起正常工作。
集成测试可能有点棘手。要运行集成测试,请使用 just integration
(或者如果您还没有安装 just
,请使用 cargo test --release --features integration
)。为了轻松调试这些测试(这些测试通常依赖于控制器逻辑的正确运行),图形可能会有所帮助。您可以在 dashboards/
中找到每个测试的 Grafana 仪表板,如果您正在运行 Prometheus(使用根目录中的 prometheus.yml
)并且 Grafana 正在运行(导入仪表板),则应该设置正确。
依赖关系
~8–22MB
~298K SLoC