微信公众号

ysab基于golang的http服务器压测工具

引言

ysab
最近需要测试一个服务的性能,要求是重放线上真实请求(请求参数不一致)。比较常用的就是Apache的ab压测工具,有点出入的是如果想发送不同的get请求需要用脚本去写for循环去压。最后基于此用Golang实现了一个类似于ab的工具ysab,支持一次压测发送不同url、不同参数的功能。欢迎大家使用。

项目地址

Ysab点我去gihub

功能介绍

  • 发送单条url
  • 发送多条url
  • 支持可变body体
  • 支持GET、POST、PUT、DELETE、HEAD

安装

部分例子

部分参数说明

结果展示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[yunson ~]# ysab -n 900 -r 100 -u http://10.10.10.10:8080/test

Summary:
Complete requests: 90000
Failed requests: 0
Time taken (s): 3.383578701
Total data size (Byte): 1080000
Data size/request (Byte): 12
Max use time (ms): 3260
Min use time (ms): 0
Average use time (ms): 13.161
Requests/sec: 26599.056192604872

Percentage of waiting time (ms):
10.00%: 0
25.00%: 1
50.00%: 5
75.00%: 21
90.00%: 29
95.00%: 35
99.00%: 61
99.90%: 87
99.99%: 3258


Time detail (ms)
item min mean max
dns 0 0 0
conn 0 0.344 61
wait 0 2.341 3259
resp 0 0.006 13

Response Time histogram (code: requests):
200: 90000

其他说明

  • 被压测的服务使用gin写的一个简单的hello world接口
  • 推荐尝试使用 “-urlsfile” 命令,这样你可以发送不同url在同一压测中。
    欢迎大家在github上讨论
yunsonbai wechat
微信公众号