引言
最近需要测试一个服务的性能,要求是重放线上真实请求(请求参数不一致)。比较常用的就是Apache的ab压测工具,有点出入的是如果想发送不同的get请求需要用脚本去写for循环去压。最后基于此用Golang实现了一个类似于ab的工具ysab,支持一次压测发送不同url、不同参数的功能。欢迎大家使用。
项目地址
ysab 是一个可以帮助你获取http服务器压力测试性能指标的工具,有点像Apache的ab。不同的是,它可以帮你发送携带不同参数的请求,这样你就可以便捷地重放线上的真实请求。
功能介绍
- 发送单条url
- 发送多条url
- 支持可变body体
- 支持GET、POST、PUT、DELETE、HEAD
安装
- mac
wget https://github.com/yunsonbai/ysab/releases/download/install-tool/install_mac -O install_mac && sh install_mac && rm -rf install_mac
如果报权限问题请执行:
wget https://github.com/yunsonbai/ysab/releases/download/install-tool/install_mac -O install_mac && sudo sh install_mac && rm -rf install_mac
如果安装完后不能输入 ysab 命令,可以重启终端或者执行 source /etc/profile
- linux
wget https://github.com/yunsonbai/ysab/releases/download/install-tool/install_linux -O install_linux && sh install_linux && rm -rf install_linux
如果报权限问题请执行:
wget https://github.com/yunsonbai/ysab/releases/download/install-tool/install_linux -O install_linux && sudo sh install_linux && rm -rf install_linux
参数说明
- ysab -h
1 | Options: |
- 注意: -urlsfile 是实现发送携带不同参数请求的关键参数,文件详细内容,可参照examples/post_urls.txt 和 examples/get_urls.txt
一些例子
- 1: ysab -n 900 -r 2 -u http://10.10.10.10:8080/test
- 2: ysab -n 900 -urlsfile ./examples/get_urls.txt
- 3: ysab -n 900 -r 2 -m POST -u http://10.10.10.10:8080/add -d ‘{“name”: “yunson”}’
- 4: ysab -n 900 -urlsfile -m POST ./examples/post_urls.txt
结果展示
1 | (http://10.10.10.10:8080/test 是一个借助gin完成的测试 API. 这个 API 的 response 是 "hello world".) |
关于 http code
- 2xx: Success
- != 2xx: Faild
- 5xx:
- 500: Server Error
- 503: May be connection refused or connection reset by peer, you need to check your server.
- other: http code
- 5xx:
注意
推荐使用 -urlsfile
1
2
3
4
5
6
7
8
9你可以使用 -urlsfile 发送携带不同 body 或 url 的请求
样例:
ysab -n 500 -urlsfile ./examples/get_urls.txt
ysab -n 500 -urlsfile -m POST ./examples/post_urls.txt
urls.txt example:
examples/urls.txt
You can use create_urls.py to create a urls.txt file.use -u
1 | example: |