使用ab命令对网站进行压力测试

发表于:2017-11-27 10:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Bboysoul    来源:Bboysoul个人博客

  概述
  这是apache自带的一个网站压力测试工具,是ApacheBench的缩写,我们可以使用这个工具来对我们的网站进行压力测试
  安装
  在ubuntu上要安装下面这个包
  sudo apt-get install apache2-utils
  在centos下是下面这个包
  sudo yum install httpd-tools -y
  使用
  可以直接输入ab来看参数和使用方法
  ~ ab
  ab: wrong number of arguments
  Usage: ab [options] [http[s]://]hostname[:port]/path
  Options are:
      -n requests     Number of requests to perform
      -c concurrency  Number of multiple requests to make at a time
      -t timelimit    Seconds to max. to spend on benchmarking
                      This implies -n 50000
      -s timeout      Seconds to max. wait for each response
                      Default is 30 seconds
      -b windowsize   Size of TCP send/receive buffer, in bytes
      -B address      Address to bind to when making outgoing connections
      -p postfile     File containing data to POST. Remember also to set -T
      -u putfile      File containing data to PUT. Remember also to set -T
      -T content-type Content-type header to use for POST/PUT data, eg.
                      'application/x-www-form-urlencoded'
                      Default is 'text/plain'
      -v verbosity    How much troubleshooting info to print
      -w              Print out results in HTML tables
      -i              Use HEAD instead of GET
      -x attributes   String to insert as table attributes
      -y attributes   String to insert as tr attributes
      -z attributes   String to insert as td or th attributes
      -C attribute    Add cookie, eg. 'Apache=1234'. (repeatable)
      -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
                      Inserted after all normal header lines. (repeatable)
      -A attribute    Add Basic WWW Authentication, the attributes
                      are a colon separated username and password.
      -P attribute    Add Basic Proxy Authentication, the attributes
                      are a colon separated username and password.
      -X proxy:port   Proxyserver and port number to use
      -V              Print version number and exit
      -k              Use HTTP KeepAlive feature
      -d              Do not show percentiles served table.
      -S              Do not show confidence estimators and warnings.
      -q              Do not show progress when doing more than 150 requests
      -l              Accept variable document length (use this for dynamic pages)
      -g filename     Output collected data to gnuplot format file.
      -e filename     Output CSV file with percentages served
      -r              Don't exit on socket receive errors.
      -m method       Method name
      -h              Display usage information (this message)
      -Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)
      -f protocol     Specify SSL/TLS protocol
                      (TLS1, TLS1.1, TLS1.2 or ALL)
  → ~
  下面介绍一个最常用的使用方法
  ab -c 10 -n 100 http://www.example.com/
  上面的意思是模仿10个用户对网站进行1000次请求
  下面是输出
  →   ~  ab -c 10 -n 100 http://www.linux.cn/ 
  This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
  Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
  Licensed to The Apache Software Foundation, http://www.apache.org/
  Benchmarking www.linux.cn (be patient).....done
  Server Software:        nginx
  Server Hostname:        www.linux.cn
  Server Port:            80
  Document Path:          /
  Document Length:        178 bytes
  Concurrency Level:      10
  Time taken for tests:   0.861 seconds
  Complete requests:      100
  Failed requests:        0
  Non-2xx responses:      100
  Total transferred:      35800 bytes
  HTML transferred:       17800 bytes
  Requests per second:    116.09 [#/sec] (mean)
  Time per request:       86.142 [ms] (mean)
  Time per request:       8.614 [ms] (mean, across all concurrent requests)
  Transfer rate:          40.59 [Kbytes/sec] received
  Connection Times (ms)
                min  mean[+/-sd] median   max
  Connect:       32   41   7.3     37      53
  Processing:    33   42   7.4     38      55
  Waiting:       33   42   7.4     38      55
  Total:         65   83  14.7     75     108
  Percentage of the requests served within a certain time (ms)
    50%     75
    66%     78
    75%    102
    80%    103
    90%    105
    95%    106
    98%    107
    99%    108
   100%    108 (longest request)
  其实你最主要看的输出参数是下面这几个
  Server Software 服务器软件
  Server Hostname 主机名
  Server Port 服务器端口
  Time taken for tests 测试时间
  Complete requests完成的请求
  Failed requests 失败的请求
  Time per request 每次请求的时间
  Transfer rate 传输速度
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号