ab压力测试

ab压力测试

一、apache安装

1.下载文件解压到指定目录

下载链接:https://www.apachelounge.com/download/

2.修改 /conf/httpd.conf文件(39行)

​ 修改SRVROOT为apache24的安装目录

Define SRVROOT "D:\java\Apache24"
ServerRoot "${SRVROOT}"

​ 修改Listen端口(默认为80,修改成未使用的端口即可)

Listen 8088

3.命令行进入到apache的bin目录,输入:httpd -k install,把apache安装成windows后台服务(用管理员身份打开命令窗口)

httpd -k install

4.启动服务ab

进入/bin目录,打开ApacheMonitor.exe启动服务

5.开始–>运行–>services.msc–>确定查看服务是否启动成功

二、apache自带工具ab的使用

1.ab命令参数

	-n    #指定在测试会话中所执行的请求个数。默认时,仅执行一个请求。 

  -c    #指定一次产生的请求个数。默认是一次一个。

  -t    #测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。

  -p    #包含了需要POST的数据的文件.

  -T    #POST数据所使用的Content-type头信息。

  -v    #设置显示信息的详细程度 - 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。

  -w    #以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。

  -I    #执行HEAD请求,而不是GET。

2.get请求测试

ab -n1000 -c10 192.168.1.188:8080/zhny/login 

3.post请求测试

**问题:**使用该链接进行测试:ab -n1000 -c10 192.168.1.188:8080/zhny?username=admin&password=admin

发现由于存在特殊字符 & ,虽然命令执行成功,但是并不能处理 & 后的参数

**解决方法:**ab/bin同级目录建立一个文件:para.txt,在里面写入要传递的参数:username=admin&password=admin
指定请求类型为:application/x-www-form-urlencoded

**参数:**p(小写),T(大写),注意区分大小写,一个是用于指定POST请求时的参数文件,一个用于指定请求的类型Content-type

para.txt文件:

username=admin&password=admin

测试接口:

D:\Program Files\Apache24\bin>ab -n1000 -c10 -p para.txt -T application/x-www-form-urlencoded 192.168.1.188:8080/zhny/getPageInfo

4.上传文件测试

abpost.txt文件:

------WebKitFormBoundaryM1tLdAWapR8WCJSe
Content-Disposition: form-data; name="file"; filename="file.jpg"
Content-Type: image/jpeg
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAFMQAABTEBt+0oUgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAVUSURBVEiJpZRZbFzVHcZ/5965c2ffV9sz8RjHdpyxweNEoSRN2YJLwxJBqYTahz6URSC1UqtWbSOlIPHQVuoDFeKpaaWqUh+iShRUElUCTBZRm8iBAnHiNfEyZuzxzHjuzHj224fUI4whQeJI5+Ecne/7/b9zjv7ous5XmQ6L/B3Aous6gBHwfBWdxC2G32F8Sgihhm3q8MEu19mQy9zlMCuJvSHbq7fSArcGRJymBx4fDI6ntNrGQ/3+4XjA8reoS33owT3e+zrctju+NqBYbXz0cNw/6DDJz9pVA30h62A8ZPt+PGz3+S3Sk18LYBciYDJIxwC+e3uoz6bK7A3arCN7fJ2VehNZkr4d8qjxm3mI/z8aAG4hXJ0d9uPVejNVrbNyYJfj1/ujzn6X2bBDuFlrIBB8mNQWzs1mXpFkyeU2GzqvrVX+cC1XnNgB2OO3DveErH9+NB4YLFQaldVCpdETsFliu3sJtkcQAj5dWqRer+P1B5ENMqsrSVLJJa6uZOtuk6K7LIpyaSmffHc6c2JiOX8SoFVau8d8/Kn7BweHDhzk3Oio5DRn1L1D+4h2dbeqdnl821IEwu3s7h9AeuffBiEp+uEjI0Q/nGibSZ//AXBy2xu4zIYeh9PF8nKyXtEyisPlJtrVzaamsTB6lvT0TMu4mM2yeP4CxUwG1WQiGuumpOXE5OXLNbvDScCm9gkhrNsSrBWqq1NXr/YaFYMBwOF0AbD+3jjdb15gsTdCPbYLg0Eh+845bjv7AbPfXMP6+DFkWQZgYeoTpdwQxWvZ0qyu68VtCS7NZp94/ePUit6oA2Cx2QGQvG5WQy6KATcGgwJA0+Ug7Xeiu5wA5DLrAOjNJuNz6cql5cJzW76tBBooMa/F9vnf0jacYLOvh5jF2tqL3ns3xf0JonYHpUKBXGadaFc32fQafcGq2zqVbgf+uw0QdZmO7PaZ3VvrxWuzRGJdqCYzZquN02OXSfREqNbqLKU3+EZ/JwCKauTuBx9uJai++U8RshkPAae3ATw2ZcCu3lj6giHaIrsoaHlUkxmASr3BP85+QLFcZX9vtJVGUYykshpehxWDLOH1B/Fa59t2XlG5MVuqNtgVjbD/0Lc+f1McOzhAuVpDMcjIkkQqq3F+Jk3d7OXS5Ay/fSIBQKPRIFuqr+4AzKZLZ+bWN7WhhM8OMH51mcFYAJNRaUHypTLnZ9apmb2UJAs/+c0rqKrKn35/onVmOZUmla+O7QDoun79e0OhRW1jox/AYDTy/MlRjt5zF0I2MDW/yOH7R/jhiWNIksSpU6dQVfWGuJwHTORzWSbmU+nruc13t3y3NbvkRmUyuXidbHqNRMzPzx/dh9UX5ulfvMihkUc4fN8IqqoihGCrxUxdmSSoNgCYn7rC7NrmFV3X178QMLdS/tm5udz8RxPjNJtN+trc7NGX+N2vfoyW30DTtBsiSaLZbJLL5Xj9L3/kzp4w66sp3r74SWY6XXjhs57builAvN3xy6cPtL3Uc1tMjif2tX7Ra2PTlCwBfB1d+IJhzvzrDbqdEo8NRygXNS6Mvs3Lb02ffH8h96ObAoQQ4s5Ox2tPJsJHvXaL3Be/nUhXN0IIACq1OlmtRMjjQNd1UsklLo79h7+OLbw3Op05stUivhSwBRkI247f2+N5Zqjd0WF3OHG6PZitNoQQ1KoVKpUK6dSnTC5nMqcn03+/uJj/qa7r1R1eXwTYGh1u2x0DYfMLQZuxN+Yxd0bcJpMkBMl8pTa3VlpIl2ozHy8XXp7JFE9/mcdNAZ9JJFkVZSDiUY7KQjItbJTPaJv193Vdr91K+z+BklGf3fugXAAAAABJRU5ErkJggg==
------WebKitFormBoundaryM1tLdAWapR8WCJSe--

接口测试:

ab -v 2 -T 'multipart/form-data; boundary=----WebKitFormBoundaryM1tLdAWapR8WCJSe' -p ./abpost.txt http://localhost:8080/article/upload

四、测试结果分析

##首先是apache的版本信息 
This is ApacheBench, Version 2.3 <$Revision: 655654 $> 
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ 
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking vm1.jianfeng.com (be patient)

Server Software:        Apache/2.2.19    ##apache版本 
Server Hostname:        vm1.jianfeng.com   ##请求的机子 
Server Port:            80 ##请求端口
Document Path:          /a.html 
Document Length:        25 bytes  ##页面长度
Concurrency Level:      100  ##并发数 
Time taken for tests:   0.273 seconds  ##共使用了多少时间 
Complete requests:      1000   ##请求数 
Failed requests:        0   ##失败请求 
Write errors:           0   
Total transferred:      275000 bytes  ##总共传输字节数,包含http的头信息等 
HTML transferred:       25000 bytes  ##html字节数,实际的页面传递字节数 
Requests per second:    3661.60 [#/sec] (mean)  ##每秒多少请求,这个是非常重要的参数数值,服务器的吞吐量 
Time per request:       27.310 [ms] (mean)  ##用户平均请求等待时间 
Time per request:       0.273 [ms] (mean, across all concurrent requests)  ##服务器平均处理时间,也就是服务器吞吐量 
Transfer rate:          983.34 [Kbytes/sec] received  ##每秒获取的数据长度
Connection Times (ms) 
              min  mean[+/-sd] median   max 
Connect:        0    1   2.3      0      16 
Processing:     6   25   3.2     25      32 
Waiting:        5   24   3.2     25      32 
Total:          6   25   4.0     25      48
Percentage of the requests served within a certain time (ms) 
  50%     25  ## 50%的请求在25ms内返回 
  66%     26  ## 60%的请求在26ms内返回 
  75%     26 
  80%     26 
  90%     27 
  95%     31 
  98%     38 
  99%     43 
100%     48 (longest request)

你可能感兴趣的:(java,压力测试,apache)