ysab是一款基于Golang语言开发的压测工具,类似于Apache的ab工具,不同的是它支持批量发送不同参数的请求,方便重放线上请求,获取http服务器相关性能数据。该工具核心利用的goroutine和channel。
项目地址
Ysab:https://github.com/yunsonbai/ysab
功能介绍
发送单条url
发送多条url
支持GET、POST、PUT、DELETE
获取和安装
step 1:
Linux: wget https://github.com/yunsonbai/ysab/releases/download/v0.1/ysab_Linux_0.1.tgz
MacOS: wget https://github.com/yunsonbai/ysab/releases/download/v0.1/ysab_macOS_0.1.tgz
step 2:
tar -zxvf ysab_x_x.tgz
step 3:
mv ysab usr/bin/
部分例子
1: ysab -n 900 -r 30 -u http://10.10.10.10:8080/test
2: ysab -n 900 -urlsfile ./examples/urls.txt
3: ysab -n 900 -r 30 -u http://10.10.10.10:8080/add -d '{"name": "yunson"}'
4: ysab -n 900 -urlsfile -m POST ./examples/urls2.txt
结果展示
说明:http://10.10.10.10:8080/test是基于gin写的一个api,简单的返回hello world
[yunson ~]# ysab -n 900 -r 30 -u http://10.10.10.10:8080/test
Summary:
Complete requests: 27000
Failed requests: 0
Total data size(ContentLength): 324000
Data size/request: 12
Max use time: 257 ms
Min use time: 10 ms
Average use time: 36.074 ms
Requests/sec: 13500
QPS time histogram (timestamp: requests):
1551254255: 14198
1551254256: 12802
Use Time Percent:
<=50ms: 87.74%
<=100ms: 99.31%
<=300ms: 100.00%
<=500ms: 100.00%
>500ms: 0.00%
Code Time histogram (code: requests):
200: 27000
Time detail (ms)
item min mean max
dns 0 0 0
conn 0 1.088 51
wait 10 33.82 257
resp 0 0.596 28
其他说明
关于命令urlsfile
推荐尝试使用 "-urlsfile" 命令,可以发送不同url在同一压测中。
关于urls.txt
无body样例:
https://github.com/yunsonbai/ysab/blob/master/examples/urls.txt
有body样例:
https://github.com/yunsonbai/ysab/blob/master/examples/urls2.txt