Github - yunsonbai/ysab

ysab 是一个可以帮助获取http服务器压力测试性能指标的工具,有点像Apache的ab。不同的是,它可以发送不同参数的请求,可以便捷地重放线上的真实请求,这样可以完全模拟线上请求,并重现性能问题,方便进一步排查

ysab 支持功能:

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

ysab 安装

#linux
https://github.com/yunsonbai/ysab/releases/download/v1.0.1/ysab-linux-1.0.1.tgz

#Mac
https://github.com/yunsonbai/ysab/releases/download/v1.0.1/ysab-mac-1.0.1.tgz

下载安装:

#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 参数

查看 ysab 支持的参数:

ysab -h

如:

Options:
  -r  压测轮数,总的请求量是 r * n
  -n  并发数,最大900,最小1
  -m  HTTP method, 可选值 GET,POST,PUT,DELETE,Head,默认GET
  -u  Url of request, 使用 "" 括起来
      例如: -u "https://yunsonbai.top/?name=yunson"
  -H  添加请求头
      例如:
      -H "Accept: text/html"  设置 Accept
      -H "Host: yunsonbai.top"  设置 Host
      -H "Uid: yunson" -H "Content-Type: application/json" 设置Uid和Content-Type
  -t  每个请求的超时时间,单位为秒,默认10
  -d  请求体 
      例如: '{"a": "a"}'
  -h  帮助
  -v  显示版本号
  -urlsfile  包含所有请求信息的文件,如果设置了该参数, -u,-d,-r 将会失效
      例如:
      -urlfile /tmp/urls.txt

注:-urlsfile 是实现发送携带不同参数请求的关键参数,内容如:

#get_urls.txt
-u http://127.0.0.1:8080/test?a=1&b=2
-u http://127.0.0.1:8080/test?a=3&b=4

#post_urls.txt
-u http://127.0.0.1:8080/add -d {"name":"other", "blog": "https://other.top"}
-u http://127.0.0.1:8080/add -d {"name":"yunson", "blog": "https://yunsonbai.top"}

ysab 示例

#GET
ysab -n 900 -r 2 -u http://10.10.10.10:8080/test
ysab -n 900 -urlsfile test_get_urls.txt

#POST
ysab -n 900 -r 2 -m POST -u http://10.10.10.10:8080/add -d '{"name": "yunson"}'
ysab -n 900 -m POST -urlsfile test_post_urls.txt
Last modification:June 15th, 2022 at 02:31 pm