ab 压力测试
使用ab 简单测试接口的请求响应时间
- 单独接口测试
time curl http://baidu.com/token
- curl用来用post请求,且有header及请求内容
time curl -X POST \
https://clt.zljgp.com/v1/ctl/event \
-H 'Authorization: Bearer nGghqstuEN1JxudKZ7z3jqFG21m6Lmiqz_vDazhe49U' \
-H 'Content-Type: application/json' \
-d '{
"trace_id":"4665904222556160",
"time": "2019-11-14T10:05:33+08:00"
}'
- ab 来测试
ab -n 1000 -c 10 curl http://baidu.com/token // 总数1000 ,并发10
// 使用 post 数据, 总数10000, 并发100
ab -n 10000 -c 100 -p "post.txt" -T "application/json" -H "Content-Type: application/json" "https://clt.zljgp.com/v1/ctl/event"
// post.txt
{
"trace_id":"4665904222556160",
"time": "2019-11-14T10:05:33+08:00"
}
- ab 安装
yum -y install httpd-tools
- 参数
ab -h
语法 : ab [options] [http[s]://]hostname[:port]/path
选择如下:
-n requests 请求总次数
-c concurrency 并发次数
-t timelimit 基准测试最大秒数, 这意味着 -n 为 50000
-s timeout 每个请求超时时间 , 默认30s
-p postfile post 请求数据【文件路径】. 必须使用 -T 参数
-u putfile put 请求数据【文件路径】. 必须使用 -T 参数
-T content-type http 的contentType 'application/json' 默认'text/plain'
-v verbosity 显示过程
-w 使用html table 显示结果
-i head 请求
-C attribute 添加 cookie, eg. 'Apache=1234'. 可多条
-H attribute 添加 http header
-A attribute auth 验证
-P attribute 代理auth 验证
-X proxy:port 代理服务设置
-k Use HTTP KeepAlive feature
-d Do not show percentiles served table.
-S Do not show confidence estimators and warnings.
-q Do not show progress when doing more than 150 requests
-l Accept variable document length (use this for dynamic pages)
-g filename 结果输出到文件(以 gnuplot 格式).
-e filename 结果输出到文件 (以csv形式).