今天为大家介绍一款apache自带的一种的测试网页优化效果速度以及服务器承载的工具——ab.exe。
一、安装
window系统安装,通过官网下载apache zip安装包,解压后放在C(or)D盘根目录
下载网址:https://www.apachehaus.com/cgi-bin/download.plx
如下图位置点击下载zip包
大家在工作中或者开发中可以使用apache的ab工具来测试自己的网站并发量大小,和某个页面的访问时间。
启动ab工具
以安装路径为D:\Apache24\bin为例
打开终端输入命令
切换D盘
cd D:\Apache24\bin
输入ab --help,显示所有指令集合,即ab工具安装成功且能正常启动
参数解析:
-n 测试会话中所执行的请求个数,默认仅执行一个请求,如果不指定-t参数,默认执行完所有请求后自动结束压测
-c 一次产生的请求个数,即同一时间发出多少个请求,默认为一次一个,此参数可以控制对服务器的单位时间内的并发量
-t 测试所进行的最大秒数,默认为无时间限制….其内部隐含值是[-n 50000],它可以使对服务器的测试限制在一个固定的总时间以内,如果时间到了,请求个数还未执行完,也会被停止。
-p 包含了需要POST的数据的文件,数据格式以接口请求参数定义的格式为准,eg. xxx.json
-T POST 数据所使用的Content-type头信息,指定请求参数格式,eg. application/json
-r 在接口返回失败后,默认会终止压测,添加此参数后压测会继续进行
-v 设置显示信息的详细程度
-w 以HTML表格的形式输出结果,默认是白色背景的两列宽度的一张表
-i 以HTML表格的形式输出结果,默认是白色背景的两列宽度的一张表
-x 设置属性的字符串,此属性被填入[/table]
-y 设置属性的字符串
-z 设置[table]属性的字符串
-C 对请求附加一个Cookie行,其典型形式是name=value的参数对,此参数可以重复
-H 对请求附加额外的头信息,此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如”Accept-Encoding:zip/zop;8bit”)
-A HTTP验证,用冒号:分隔传递用户名及密码
-P 无论服务器是否需要(即是否发送了401认证需求代码),此字符串都会被发送
-X 对请求使用代理服务器
-V 显示版本号并退出
-k 启用HTTP KeepAlive(长连接)功能,即在一个HTTP会话中执行多个请求,默认为不启用KeepAlive功能
-d 不显示”percentage served within XX [ms] table”的消息(为以前的版本提供支持)
-S 不显示中值和标准背离值,且均值和中值为标准背离值的1到2倍时,也不显示警告或出错信息,默认会显示最小值/均值/最大值等(为以前的版本提供支持)
-g 把所有测试结果写入一个’gnuplot’或者TSV(以Tab分隔的)文件
-e 产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微秒为单位)时间
-h 显示使用方法-k 发送keep-alive指令到服务器端
二、ab工具用法举例
ab -c 100 -n 10000 http://www.baidu.com/
上述表达式表示模拟访问http://www.baidu.com/共计10000次,每秒并发为100个。
运行结果为:
apache中ab.exe运行结果
这种情况表示服务器还没有瘫痪,能处理的过来,那么我们加大ab工具中的-c的值(并发量),直到得不出结果或者花费时间超出预期为止,即可得出服务器承载能力。
利用apache得ab工具测试网页优化速度和服务器承载能力是一个循循渐进的过程,慢慢的改变apache的ab工具中的参数,测试临界值。
三、ab工具其余参数
apache中ab.exe其余参数
测试报告指标详细解析:
Server Software: nginx
Server Hostname:
#请求的URL主机名
Server Port: 80
#请求端口
Document Path: /#/
#请求路径
Document Length: 15466 bytes
#HTTP响应数据的正文长度
Concurrency Level: 10
#并发用户数,这是我们设置的参数之一(-c)
Time taken for tests: 1.169 seconds
#所有这些请求被处理完成所花费的总时间 单位秒
Complete requests: 100
#总请求数量,这是我们设置的参数之一(-n)
Failed requests: 0
#表示失败的请求数量
Total transferred: 1577000 bytes
#所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度
HTML transferred: 1546600 bytes
#吞吐量,计算公式:Complete requests/Time taken for tests 总请求数/处理完成这些请求数所花费的时间
Requests per second: 85.55 [#/sec] (mean)
#用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)。处理完成所有请求数所花费的时间/(总请求数/并发用户数)
Time per request: 116.889 [ms] (mean)
#用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)。处理完成所有请求数所花费的时间/(总请求数/并发用户数)
Time per request: 11.689 [ms] (mean, across all concurrent requests)
#服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency Level
Transfer rate: 1317.52 [Kbytes/sec] received
#表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Total trnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。
Connection Times (ms)
min mean[+/-sd] median max
Connect: 4 11 5.2 14 20
Processing: 13 95 18.0 98 140
Waiting: 8 58 27.2 56 140
Total: 29 106 17.5 109 146
Percentage of the requests served within a certain time (ms)
50% 109
#50%的请求在109毫秒内返回(以下同此意思)
66% 111
75% 113
80% 116
90% 120
95% 123
98% 132
99% 146
#99%的请求在146毫秒内返回
100% 146 (longest request)
延伸
以上列举的为一个简单的get请求url做压测,还可以做post请求压测,如下:
1.准备测试post接口url,找到post参数
2.新建一个文本文档,里面内容填入post参数内容(可以是json格式,可以是&格式)如图
3.输入指令:ab -n 1 -c 1 -p D:\Apache24\ceshi.txt -T application/x-www-form-urlencoded “post接口url地址”
其中:
-p 包含POST参数的文件
-T 内容类型。这个一般和-p 一起使用(Content-type header to use for POST data.)
D:\Apache24\ceshi.txt为存放post请求参数的路径
application/x-www-form-urlencoded为固定格式
最后url地址需要加引号
得到的结果如下:
这样就完成了一次post请求url压测;参数的分析详见上面示例
ab.exe下载地址,文件已上传:
链接:https://pan.baidu.com/s/1e5IUv8fpvehN-v80nD3Mlg?pwd=79yk
提取码:79yk
文章来源:https://www.toymoban.com/news/detail-680588.html
化繁为简,欢迎一起交流学习!文章来源地址https://www.toymoban.com/news/detail-680588.html
到了这里,关于apache的ab工具测试网页优化效果速度以及服务器承载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!