1.下载httpd-2.4.53-o111n-x64-vs17.zip,解压为D:\JavaEEDevelop\Apache24:
https://www.apachehaus.com/cgi-bin/download.plx
2.参数选项详解:
查看参数选项:
ab -help
格式:
ab [参数选项] [http://域名或IP:端口/接口路径
选项参数:
-n 次数 指定请求次数
-c 并发数 指定并发数
-t 时间 最大持续时间,默认无限
-s 秒数 每次请求超时时间,默认30秒
-b 字节数 TCP收/发缓存大小,单位字节
-B IP地址 连接的IP地址
-p 文件路径 Post方式上传文件,需加-T参数
-u 文件路径 Put方式上传文件,需加-T参数
-T application/x-www-form-urlencoded 指定Post/Put文件时Content-type头字段,默认text/plain
-v verbosity 输出故障排除信息
-w 将结果打印成HTML表格
-i 使用Head方式请求
-x attributes 插入字符串作为<table>的属性
-y attributes 插入字符串作为<tr>的属性
-z attributes 插入字符串作为<td>或<th>的属性
-C attribute 添加Cookie,可重复此命令添加多个
-H attribute 添加请求头,重复此命令添加多个
-A attribute 添加Basic WWW认证,属性是由冒号分隔的用户名和密码。
-P attribute 添加Basic Proxy认证,属性是由冒号分隔的用户名和密码。
-X IP:端口 指定代理服务器IP和端口
-V 打印版本号并退出
-k 使用HTTP KeepAlive特性
-d 不显示服务的百分比
-S 不显示信心评估和警告
-q 当执行超过150个请求时没有显示进度
-l 接受可变文档长度(用于动态页面)
-g filename 输出结果到gnuplot格式的文件
-e filename 输出结果到csv格式的文件
-r 接收错误时不退出程序
-m method 指定请求方法名称
-h 显示使用说明
3.使用ab压测Web应用接口:
CMD中执行命令(cd D:\JavaEEDevelop\Apache24\bin):
ab -n 100000 -c 400 -s 20 http://192.168.233.130:10000/insertUser/ #并发400,共发起10万次请求,每次请求超时为20秒
结果解读:
This is ApacheBench, Version 2.3 <$Revision: 1879490 $> #ab版本号
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.233.130 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests #请求总次数
Server Software:
Server Hostname: 192.168.233.130 #Web应用IP
Server Port: 10000 #Web应用端口
Document Path: /insertUser/ #Web应用接口路径
Document Length: 12 bytes #接口返回body大小
Concurrency Level: 400 #请求并发数
Time taken for tests: 53.872 seconds #测试总耗时
Complete requests: 100000 #请求总次数
Failed requests: 0 #请求失败数
Total transferred: 14500000 bytes #传输总数据量
HTML transferred: 1200000 bytes #html总数据量
Requests per second: 1856.26 [#/sec] (mean) #平均每秒请求数RPS,值越大性能越好
Time per request: 215.487 [ms] (mean) #平均耗时,值越小性能越好
Time per request: 0.539 [ms] (mean, across all concurrent requests) #接口平均处理时间,值越小性能越好
Transfer rate: 262.85 [Kbytes/sec] received #每秒获取数据的长度,单位KB/S
Connection Times (ms)
min mean[+/-sd] median max
#最小 #平均 #中值 #最大
Connect: 0 0 0.3 1 22 #连接耗时
Processing: 7 214 15.0 209 271 #处理耗时
Waiting: 2 135 55.2 140 262 #等待耗时
Total: 8 215 15.1 209 271 #总耗时
Percentage of the requests served within a certain time (ms) #请求在以下百分比所耗的时间(单位毫秒)
50% 209
66% 216
75% 223
80% 226
90% 234
95% 247
98% 253
99% 258
100% 271 (longest request)