天天看点

使用ab进行压力测试的简单说明

普通的测试,使用-c -n参数配合就可以完成任务

格式: ./ab [options] [http://]hostname[:port]/path

参数:

-n 测试的总请求数。默认时,仅执行一个请求

-c 一次并发请求个数。默认是一次一个。

-H 添加请求头,例如 ‘Accept-Encoding: gzip’,以gzip方式请求。

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

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

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

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

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

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

-C -C cookie-name=value 对请求附加一个Cookie:行。 其典型形式是name=value的一个参数对

<code>[root@1inux ~]# ab -n 1000 -c 10 http:</code><code>//blog.1inux.com/index.php</code>

<code>..... </code>

<code>Server Software:        nginx/1.6.2</code>

<code>Server Hostname:        blog.1inux.com</code>

<code>Server Port:            80</code>

<code>Document Path:          /index.php</code>

<code>Document Length:        0 bytes</code>

<code>Concurrency Level:      10</code>

<code>Time taken </code><code>for</code> <code>tests:   11.212 seconds</code>

<code>Complete requests:      1000</code>

<code>Failed requests:        0</code>

<code>Write errors:           0</code>

<code>Non-2xx responses:      1000</code>

<code>Total transferred:      257000 bytes</code>

<code>HTML transferred:       0 bytes</code>

<code>Requests per second:    89.19 [#/sec] (mean)</code>

<code>Time per request:       112.121 [ms] (mean)</code>

<code>Time per request:       11.212 [ms] (mean, across all concurrent requests)</code>

<code>Transfer rate:          22.38 [Kbytes/sec] received</code>

<code>Connection Times (ms)</code>

<code>              </code><code>min  mean[+/-sd] median   max</code>

<code>Connect:        0    0   0.0      0       1</code>

<code>Processing:    55  112  23.6    104     183</code>

<code>Waiting:       55  112  23.6    104     183</code>

<code>Total:         55  112  23.6    104     183</code>

<code>.....</code>

Server Software:表示被测试的Web服务器软件名称

Server Hostname:表示请求的URL中的主机名称,这里是localhost

Server Port:表示被测试的Web服务器软件的监听端口

Document Path:表示请求的URL中的根绝对路径

Document Length:表示HTTP响应数据的正文长度

Concurrency Level:表示并发用户数,这是我们设置的参数

Time taken for tests:表示所有这些请求被处理完成所要花费的总时间

Complete requests:表示总请求数,这也是我们设置的参数

Failed requests:表示失败的总请求数,这里的失败指请求在连接服务器、发送数据、接收数据等环节发生异常,以及无响应超时等情况

Total transferred:表示所有请求的响应数据长度总和,包括HTTP响应的头信息和正文数据的长度

HTML transferred:表示所有请求的响应数据中正文数据的总和

Requests per second:表示服务器吞吐率(这是我们应该重点关注的)

Time per request:表示用户平均请求的等待时间

Time per request (mean, across all concurrent requests):表示服务器平均请求处理时间

Transfer rate:表示这些请求在单位时间内从服务器获取的数据长度

Percentage of the requests served within a certain time (ms):这部分数据描述每个请求处理时间的分布情况

本文转自 1inux 51CTO博客,原文链接:http://blog.51cto.com/1inux/1655584

继续阅读