安装:yum -y install httpd-tools
使用方法:
ab -help
- -n 即requests,总请求数。
- -c 即concurrency,用于指定的并发数。
- -t 即timelimit,等待响应的最大时间(单位:秒)。
- -b 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
- -p 即postfile,发送POST请求时需要上传的文件(请求体),此外还必须设置-T参数。
- -u 即putfile,发送PUT请求时需要上传的文件(请求体),此外还必须设置-T参数。
- -T 即content-type,用于设置Content-Type请求头信息
- -v 即verbosity,指定打印帮助信息的冗余级别。
- -w 以HTML表格形式打印结果。
- -i 使用HEAD请求代替GET请求。
- -x 插入字符串作为table标签的属性。
- -y 插入字符串作为tr标签的属性。
- -z 插入字符串作为td标签的属性。
- -C 添加cookie信息,例如:”Apache=1234”(可以重复该参数选项以添加多个)。
- -H 添加任意的请求头,例如:”Accept-Encoding: gzip”,请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
- -A 添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
- -P 添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。
- -X 指定使用的和端口号,例如:”126.10.10.3:88”。
- -V 打印版本号并退出。
- -k 使用HTTP的KeepAlive特性。
- -d 不显示百分比。
- -S 不显示预估和警告信息。
- -g 输出结果信息到gnuplot格式的文件中。
- -e 输出结果信息到CSV格式的文件中。
- -r 指定接收到错误信息时不退出程序。
- -h 显示用法信息,其实就是ab -help。
模拟并发请求100次,总共请求10000次
命令模板:
- ab -c 100 -n 10000 待测试网站(建议完整路径)
Connection reset by peer的原因
- 如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。
- Socket默认连接60秒,60秒之内没有进行心跳交互,即读写数据,就会自动关闭连接。
- 服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭;
Socket : too many open files错误
- ulimit -n :查看描述符
- ulimit -n 10000 :修改描述符数量
发送post json格式请求
ab -n 100000 -c 400 -p tempPara.txt -T application/json http://xxx
tempPara.txt内容:
{"driverId": 17,"pageNo": 1,"pageSize": 20,"status": 1}
注意:ab再怎么测压也就只有几万的并发,建议使用wrk