美文网首页
ab压力测试

ab压力测试

作者: 朝朝朝朝朝落 | 来源:发表于2021-04-27 16:57 被阅读0次
    Linux/Mac:
    1、yum -y install httpd-tools
         查看信息:ab -V
    2, Windows:http://www.apachehaus.com/cgi-bin/download.plx
    下载后解压,并追加PATH环境变量,如";E:\software\Apache24\bin"
    

    参数说明

    -n:执行的请求个数,默认时执行一个请求
    -c:一次产生的请求个数,即并发个数
    -p:模拟post请求,文件格式为gid=2&status=1,配合-T使用
    -T:post数据所使用的Content-Type头信息,如果-T 'application/x-www-form-urlencoded'
    

    1.模拟get请求

    直接在url后面带参数即可

    ab -c 10 -n 10 http://www.test.api.com/?gid=2
    

    2.模拟post请求

    在当前目录下创建一个文件post_data.txt
    编辑文件post_data.txt写入

    kuid=10022754530800&xxx=xxx
    

    相当于post传递cid,status参数

    ab -n 100 -c 10 -p 'post_data.txt' -T'application/x-www-form-urlencoded' 'https://xxx.xxx.com/api_service/v1.0/jingdong_repertory'
    

    返回信息

    Server Software:        Apache-Coyote/1.1    ##apache版本 
    Server Hostname:        127.0.0.1   ##请求的机子 
    Server Port:            8080 ##请求端口
    
    Document Path:          /
    Document Length:        1825 bytes  ##页面长度
    
    Concurrency Level:      100  ##并发数 
    Time taken for tests:   0.273 seconds  ##共使用了多少时间 
    Complete requests:      1000   ##请求数 
    Failed requests:        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)
    

    更多参数

    更多参数
    -n 在测试会话中所执行的请求个数。默认时,仅执行一个请求。
    -c 一次产生的请求个数。默认是一次一个。
    -t 测试所进行的最大秒数。其内部隐含值是-n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
    -p 包含了需要POST的数据的文件。
    -P 对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。
    -T POST数据所使用的Content-type头信息。
    -v 设置显示信息的详细程度-4或更大值会显示头信息,3或更大值可以显示响应代码(404,200等),2或更大值可以显示警告和其他信息。
    -V 显示版本号并退出。
    -w 以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
    -i 执行HEAD请求,而不是GET。
    -x 设置<table>属性的字符串。
    -X 对请求使用代理服务器。
    -y 设置<tr>属性的字符串。
    -z 设置<td>属性的字符串。
    -C 对请求附加一个Cookie:行。其典型形式是name=value的一个参数对,此参数可以重复。
    -H 对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如,"Accept-Encoding:zip/zop;8bit")。
    -A 对服务器提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。
    -h 显示使用方法。
    -d 不显示"percentage served within XX [ms] table"的消息(为以前的版本提供支持)。
    -e 产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间。由于这种格式已经“二进制化”,所以比'gnuplot'格式更有用。
    -g 把所有测试结果写入一个'gnuplot'或者TSV(以Tab分隔的)文件。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行为标题。
    -i 执行HEAD请求,而不是GET。
    -k 启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求。默认时,不启用KeepAlive功能。
    -q 如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数。此-q标记可以抑制这些信息。
    

    部分copy https://blog.51cto.com/u_12384628/2507321

    相关文章

      网友评论

          本文标题:ab压力测试

          本文链接:https://www.haomeiwen.com/subject/zihprltx.html