压测工具整理
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
}