1、webbench
注意webbench不支持post接口
命令参数
webbench [option]... URL
-t |--time <sec> Run benchmark for <sec> seconds. Default 30.
-c |--clients <n> Run <n> HTTP clients at once. Default one.
实例
webbench -c 10 -t 10 url
结果
1 client, running 10 sec.
#每分钟请求次数
Speed=80214 pages/min, 5263546 bytes/sec.
#总成功次数,失败次数
Requests: 13369 susceed, 0 failed.
2、ab
特点,支持POST方法
但是在公司旧系统中无法使用,报超时错误
命令参数
-n 请求的总数,默认是1次。
-c 并发数,同一时间请求数。
-p 如果后面接的是文件,表示POST请求,文件中包含请求数据,根据数据格式,设置-T参数。
-T 设置请求头中的Content-type(针对POST/PUT),比如:application/x-www-form-urlencoded。默认是text/plain。
-w 将测试结果打印到HTML表格中。
a、测试get接口
-n请求总数,-c并发数
ab -c 50 -n 50 url
b、测试post接口
必须加-p参数,参数值为post参数内容,参数类型为JSON
-n请求总数,-c并发数
ab -c 50 -n 50 -p test.json -T application/json url
c、结果
结果
Concurrency Level: 100 #并发数
Time taken for tests: 2.369 seconds #总耗时
Complete requests: 1000 #总请求书
Failed requests: 0 #失败数
Requests per second: 422.13 [#/sec] (mean) #每秒请求次数
Time per request: 236.895 [ms] (mean) #平均每秒响应时间
Time per request: 2.369 [ms] (mean, across all concurrent requests)
3、siege
支持get、post
命令参数
-c 指定并发数
-r 指定重复次数
-f 指定url列表,可以一次给多个地址加压
-t 指定用例执行时间,比如-t 10s -t 1M(H)之类
get方法
siege -c 19 -t 10s http://127.0.0.1:8501/xxx
siege -c 5 -t 1M -f url.txt
post方法
发送post请求时,url格式为:http://www.xxxx.com/ POST p1=v1&p2=v2
或将参数存入文件中
siege -c 100 -r 2 'http://127.0.0.1:8501/search/bytoptime POST <./test_stream.txt'
siege -c 100 -r 1 'http://127.0.0.1:8501/search/bytoptime POST deviceId=868661030443279&app_version=2.4.0
结果
Transactions: 1038 hits #事务数(总共测试成功点击次数)(次数)
Availability: 100.00 % #成功率
Elapsed time: 9.13 secs #总耗时
Data transferred: 0.05 MB #数据传输
Response time: 0.16 secs #响应时间
Transaction rate: 113.69 trans/sec #平均每秒处理的事务数TPS(事务数/秒)
Throughput: 0.01 MB/sec #吞吐率(MB/秒)
Concurrency: 18.54 #平均并发数
Successful transactions: 1038 #成功事务数
Failed transactions: 0 #失败事务数
Longest transaction: 0.41 #每次传输所花最长时间
Shortest transaction: 0.00 #每次传输所花最短时间