Apache HTTP server benchmarking tool(ab)
简介
ab是一个Apache Http服务器基准测试工具。它可以测试HTTP服务器每秒最多可以处理多少请求。如果测试的是web应用服务,这个结果可以转换成整个应用每秒可以满足多少请求。
缺点
这是一个非常简单的工具,用途比较有限,只能针对单个URL进行尽可能快的压力测试。
Windows下如何下载安装(Linux安装十分简单)
Apache HTTP server benchmarking tool(ab)下载地址
资源 2.4版本
📎httpd-2.4.48-o111k-x64-vc15.zip
解压移动至C盘
管理员身份运行CMD,进入bin目录,执行httpd -k install,将Apache安装为一个服务。
启动报错 443端口被占用(每个人遇到的问题可能不一样,耐心解决网上都有解决问题的办法呀!)
443端口即网页浏览端口,主要是用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。在一些对安全性要求较高的网站,比如银行、证券、购物等,都采用HTTPS服务,这样在这些网站上的交换信息,其他人抓包获取到的是加密数据,保证了交易的安全性。网页的地址以https://开始,而不是常见的http://。
解决办法分别修改conf\extra目录下的两个配置文件中绑定的端口为444/442
- httpd-ahssl.conf
- httpd-ssl.conf
netstat-ano 查看端口占用情况,发现443确实被占用了,我们选择一个在这里面未被使用的端口
修改配置文件conf\httpd.conf,默认端口80改为8080(或其他未占用的端口)
在服务中右键启动服务
访问安装地址http://localhost:8080/,看到如下页面则访问成功
参数说明
详细内容请查看官网文档《ab参数说明官网》
部分常用参数说明
参数 |
说明 |
-n |
测试会话中执行请求的根数,默认为1 |
-c |
一次产生的请求个数,默认1(并发请求数) |
-t |
测试所持续的最大时间(秒),其内部隐含值(-n 50000)。可以用来对某个测试制定一个固定的时间范围,默认,没有时间限制。 |
-p |
需要POST的数据的文件 |
-T |
POST数据所使用的Content-type头信息 |
-v |
设置显示信息的详细程度 - 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。 |
-w |
以HTML表的格式输出结果。默认是白色背景的两列宽度的一张表。 |
-i |
执行HEAD请求,而不是GET |
-C |
cookie-name=value 对请求附加一个Cookie:行。name=value的一个参数对,此参数可以重复。 |
-P |
proxy-auth-username:password 对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送 |
输出代码说明
结合一个输出样例作说明,ab -c 10 -n 10000 http://localhost:8888/test.html
输出key |
输出值 |
说明 |
Server Software |
Liziba |
服务器返回Server的值 |
Server Hostname |
localhost |
服务器主机名 |
Server Port |
8888 |
服务器端口 |
Document Path |
/test.html |
测试的页面文档地址 |
Document Length |
242313 bytes |
文档大小 |
Concurrency Level |
10 |
并发数 |
Time taken for tests |
2.661 seconds |
整个测试持续时间 |
Complete requests |
10000 |
完成的请求数量 |
Failed requests |
0 |
失败的请求数量 |
Total transferred |
2423880000 bytes |
整个场景中的网络传输量 |
HTML transferred |
2423130000 bytes |
整个场景中HTML的网络传输量 |
Requests per second |
3757.39 [#/sec] (mean) |
每秒完成请求(每秒事务数),重点指标,mean表示平均值 |
Time per request |
2.661 [ms] (mean) |
平均事务响应时间,mean表示平均值 |
Time per request |
0.266 [ms] (mean, across all concurrent requests) |
每个请求实际运行时间的平均值 |
Transfer rate |
889400.26 [Kbytes/sec] received |
平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题 |
Connection Times (ms) |
min mean[+/-sd] median ...... |
网络上消耗时间的分解,具体请查看官网 |
Percentage of the requests served within a certain time (ms) |
...... |
整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%响应时间小于3ms,66%的响应时间小于3ms...(上图) |
- 点赞
- 收藏
- 关注作者
评论(0)