SuperBenchmarker 是ㄧ个开源的类似于Apache ab的压力测试命令行工具。可以在 .NET 4.52+ 或者 .NET Core 2.0+ 平台上运行。
可支持Get、Post、Put、Delete这些调用方式,调用时能指定Concurrent user、Request数、Header template…等。
可以从Github、Chocolatey这两种方式获得。
Github用户可在download目录内取得编译好的程序主文件
Chocolatey使用者可输入下列命令进行下载
cinst SuperBenchmarker
程序的作者是建议用Chocolatey去获得程序主文件,因为放置的程序主文件已经被作者用ILMerge将依赖的组件合并,获得后就可直接使用。
程序的使用方式可直接在命令行下输入sb查看,里面会有程序的使用方式、参数、及简易的使用范例
其中比较重要的参数大概有下列几个
-u 可用来指定要压测的网站或是API
-n 可用来指定要压的Request数量
-c 可用来指定Concurrent Request数量
-m 可用来指定要使用的HTTP Method
-h 可用来指定要显示HTTP Header
-q 可用来指定要显示Cookie
所以我们要发送1000个Request去测试腾讯网的话 可以输入命令
sb -u https://www.qq.com -n 1000
要发送1000个Request, 且同时间可能有10个Concurrent Request去测试腾讯网的话 可以输入命令
sb -u https://www.qq.com -n 1000 -c 10
要在发送命令后显示Header的话, 可带入参数-h
sb -u https://www.qq.com -n 1000 -c 10 -h
要在发送命令后显示Cookie, 可带入参数-q
sb -u https://www.qq.com -n 1000 -c 10 -h -q
命令运行的最后我们都会看到类似下面这样的画面:
这边有简易的测试统计,可以看出每秒可处理多少的Request、最大的处理时间、最小的处理时间、平均的处理时间、以及压了这么多次的API,依比例分大概在哪个范围。
同时还有网页来展现测试统计结果
这些数值有助我们评估网站或是API的性能与负载量。 除了看这些数据外,这边建议也可以在压的时候看一下Server上的CPU Loading,磁盘IO,以及内存的使用状况,甚至可以用性能监视器拉些数值来看。
相关链接