apache bench做web压力测试详解
apache bench 的介绍:戳这里
apache bench 的官网:戳这里
apache bench 的windows 版本下载:戳这里
使用步骤:
1 下载解压缩后 用过cmd 进入到解压缩后的文件夹下例如:
2 cmd下安装相关服务: httpd -k install
3 开始-->运行-->services.msc-->确定 在windows服务列表找到apache类似的 说明服务安装成功,右键选择启动服务。
4 注意修改端口
默认80端口,若端口被其他应用程序占用:(查看80端口是否被占用,命令行下输入:netstat -aon|findstr "80")
打开apache目录下的conf/httpd.conf 搜索 "Listen 80";
修改为Listen 8088;
保存之后再重新启动apache。
简单使用说明:
发送get请求:ab -n100 -c10 http://127.0.0.1:90/Home/Login
-n100表示请求1000次 -c10表示模拟10个用户
返回结果如图:
返回结果数据说明
Document Path: /Home/Login
#测试的页面
Document Length: 50797 bytes
#页面大小
Concurrency Level: 10
#测试的并发数
Time taken for tests: 1.110 seconds
#整个测试持续的时间
Complete requests: 1000
#完成的请求数量login.txt
Failed requests: 0
#失败的请求数量
Write errors: 0
Total transferred: 7045000 bytes
#整个过程中的网络传输量
HTML transferred:6705000 bytes
#整个过程中的HTML内容传输量
Requests per second: 900.85 [#/sec] (mean)
#最重要的指标之一,相当于LR中的每秒事务数,后面括号中的mean表示这是一个平均值
Time per request: 11.101 [ms] (mean)
#最重要的指标之二,相当于LR中的平均事务响应时间,后面括号中的mean表示这是一个平均值
Time per request: 1.110 [ms] (mean, across all concurrent requests)
#每个连接请求实际运行时间的平均值
Transfer rate: 6197.74 [Kbytes/sec] received
#平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0
0 0.4
0 6
Processing: 2
11 .....
Waiting: 2 .....
Total: 2 .....
#网络上消耗的时间的分解。
Percentage of the requests served within a certain time (ms)
50% 10
66% 11
75% 13
80% 14
90% 17
95% 21
98% 28
99% 54
100% 67 (longest request)
post测试
命令: ab -n1 -c1 -v4 -p "login.txt" -T "application/x-www-form-urlencoded" "http://127.0.0.1:90/Home/UserLogin"
-v4 表示要输入返回结果
-p 表示要用当前login.txt文件中的数据做post参数,也可以放json数据不过需要做urlencode转换
login.txt中的内容例如userName=t1&password=123456,要保存为ANSI格式。
如果需要加上cook来保持与服务器的链接 则可以添加参数例如
-C "ASP.NET_SessionId=k0ukipotptcdaeze11cztfik"
ab -n100 -c10 -v4 -C "ASP.NET_SessionId=k0ukipotptcdaeze11cztfik" -p "postData\sign.txt" -T "application/x-www-form-urlencoded" "http://127.0.0.1:90/xxx/xxx"
注意 参数和url 都需要双引号!