引言
最近需要測(cè)試一個(gè)服務(wù)的性能,要求是重放線上真實(shí)請(qǐng)求(請(qǐng)求參數(shù)不一致)怕磨。
比較常用的就是Apache的ab壓測(cè)工具凑队,如果想發(fā)送不同參數(shù)的請(qǐng)求需用腳本寫for循環(huán)谤辜。
最后用Golang實(shí)現(xiàn)了類似于ab的壓測(cè)工具ysab厉亏,支持一次壓測(cè)發(fā)送不同url、參數(shù)的功能榔袋。
項(xiàng)目地址
功能介紹
- 發(fā)送單條url
- 發(fā)送多條url
- 支持GET周拐、POST、PUT凰兑、DELETE
獲取和安裝
-
step 1:
-
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
結(jié)果展示
說明:http://10.10.10.10:8080/test是基于gin寫的一個(gè)api妥粟,簡(jiǎn)單的返回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
其他說明
- 關(guān)于命令urlsfile
推薦嘗試使用 "-urlsfile" 命令,這樣你可以發(fā)送不同url在同一壓測(cè)中聪黎。
- 關(guān)于urls.txt
無(wú)body樣例
有body樣例