通常使用的命令是ab –c –n –k -r,分别表示:模拟终端数、发送包数、请求是否带keepalive、忽略错误,默认都是以GET方式去请求的
测试100个用户并发 1000个请求
$ab -c 100 -n 1000 http://127.0.0.1:90/tpl
测试100个用户并发 1000个请求, 测试总时间为 100秒内
$ab -c 100 -n 1000 -t 100 http://127.0.0.1:90/tpl
测试100个用户并发 1000个请求, 带 gzip 传输
注意:是双引号
-H "Accept-Encoding: gzip"
-H "Accept-Encoding: gzip, deflate"
$ab -c 100 -n 1000 -H "Accept-Encoding: gzip, deflate" http://127.0.0.1:90/tpl
测试中发现 Nginx 配置需要使用 gzip_http_version 1.0
gzip on;
gzip_http_version 1.0;
客户端强制 gzip 请求
php curl
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
测试100个用户并发 1000个请求, POST 请求
-p POST 文件
-T POST 请求类型,可以审查抓包, 常见有 application/x-www-form-urlencoded
普通提交
$ab -c 100 -n 1000 -p test.txt http://127.0.0.1:90/tpl
test.txt
username=hzq&sex=1&vip=1
二进制提交
$ab -c 100 -n 1000 -p test.txt -T "multipart/form-data; boundary=---abc123" http://127.0.0.1:90/tpl
test.txt
-----abc123
Content-Disposition: form-data; name="username"
66767f96008ade9e582fe21a172c1322
-----abc123—
abs SSL/https
如果你的 apache 不支持 ssl 那么下载 abs.exe Download & Fix For Windows OS
$abs -c10 -n 1000 -C c1=v1;c2=v2;c3=v3 https://test.com