安装: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格式请求

    1. ab -n 100000 -c 400 -p tempPara.txt -T application/json http://xxx
    2. tempPara.txt内容:
    3. {"driverId": 17,"pageNo": 1,"pageSize": 20,"status": 1}

    注意:ab再怎么测压也就只有几万的并发,建议使用wrk