压测工具整理

Siege

   

安装

# 1. Build from source
wget http://download.joedog.org/siege/siege-4.0.4.tar.gz
tar xvf siege-4.0.4.tar.gz
./configure
make
make install
# 2. Binary for MacOS
brew install siege

常用参数

-c 200        指定并发数200
-r 5          指定测试的次数5
-f urls.txt   指定url的文件
-i            随机访问 url 列表项
-b            请求无需等待 delay=0
-t 5          持续测试 5 分钟

注意: -r-t 一般不同时使用

输出结果

  • Transactions: 总共测试次数
  • Availability: 成功次数百分比
  • Elapsed time: 总共耗时多少秒
  • Data transferred: 总共数据传输
  • Response time: 等到响应耗时
  • Transaction rate: 平均每秒处理请求数
  • Throughput: 吞吐率
  • Concurrency: 最高并发
  • Successful transactions: 成功的请求数
  • Failed transactions: 失败的请求数
  • Longest transaction: 每次传输所花最长时间
  • Shortest transaction: 每次传输所花最短时间

示例

# 200个并发对http://www.google.com发送请求100次
siege -c 200 -r 100 http://www.google.com
# 在urls.txt中列出所有的网址
siege -c 200 -r 100 -f urls.txt
# 随机选取urls.txt中列出所有的网址
siege -c 200 -r 100 -f urls.txt -i
# delay=0,更准确的压力测试,而不是功能测试
siege -c 200 -r 100 -f urls.txt -i -b
# 指定http请求头 文档类型
siege -H "Content-Type:application/json"-c 200 -r 100 -f urls.txt -i -b

''' Result:
{    
  "transactions":             803,
  "availability":             100.00,
  "elapsed_time":             1.53,
  "data_transferred":         10.13,
  "response_time":            0.28,
  "transaction_rate":         524.84,
  "throughput":               6.62,
  "concurrency":              145.41,
  "successful_transactions":  803,
  "failed_transactions":      0,
  "longest_transaction":      0.83,
  "shortest_transaction":     0.07
}