新聞資訊

新聞資訊 行業動態

web壓力測試工具(小而精)

編輯:admin     時間:2019-01-30
實際的測試過程中,我們一般都是采用A、B兩臺機器,一臺跑Web服務,另外一臺跑ab測試。也有的情況是單機對單機可能測不出結果,那就要采用很多臺機器同是跑AB去請求一臺機器進行測試,根據多臺機器反饋的結果才能夠得出一個科學的測試結果。

1.APACHE ab

ab是Apache超文本傳輸協議(HTTP)的性能測試工具。其設計意圖是描繪當前所安裝的Apache的執行性能,主要是顯示你安裝的Apache每秒可以處理多少個請求。

ab 不像 LR 那么強大,但是它足夠輕便,如果只是在開發過程中想檢查一下某個模塊的響應情況,或者做一些場景比較簡單的測試,ab 還是一個不錯的選擇。

1.1.  參數說明



-n requests

在測試會話中所執行的請求個數。默認僅執行一個請求,此時其結果不具有意義。

-c concurrency

一次產生的請求個數。默認是一次一個。

-t timelimit

測試所進行的最大秒數。內部隱含值是"-n 50000"。它可以使對服務器的測試限制在一個固定的總時間以內。默認時,沒有時間限制。

-p POST-file

包含了POST數據的文件。

-T content-type

POST數據時所使用的"Content-type"頭信息。

-v verbosity

設置顯示信息的詳細程度,4或更大值會顯示頭信息,3或更大值可以顯示響應代碼(404,200等),2或更大值可以顯示警告和其他信息。

-w

以HTML表格形式輸出結果。默認時,它是白色背景的兩列寬度的一張表。

-i

執行HEAD請求,而不是GET 。

-x <table>-attributes

設置<table>屬性的字符串。此屬性被填入<table 這里 > 。

-y <tr>-attributes

設置<tr>屬性的字符串。

-z <td>-attributes

設置<td>屬性的字符串。

-C cookie-name=value

對請求附加一個"Cookie:"頭行。其典型形式是 name=value 的一個參數對。此參數可以重復。

-H custom-header

對請求附加額外的頭信息。此參數的典型形式是一個有效的頭信息行,其中包含了以冒號分隔的字段和值(如:"Accept-Encoding: zip/zop;8bit")。

-A auth-username:password

向服務器提供基本認證信息。用戶名和密碼之間由一個":"隔開,并將被以base64編碼形式發送。無論服務器是否需要(即是否發送了401認證需求代碼),此字符串都會被發送。

-P proxy-auth-username:password

對一個中轉代理提供基本認證信息。用戶名和密碼由一個":"隔開,并將被以base64編碼形式發送。無論服務器是否需要(即是否發送了407代理認證需求代碼),此字符串都會被發送。

-X proxy[:port]

對請求使用代理服務器。

-V

顯示版本號并退出。

-k

啟用KeepAlive功能,即在一個HTTP會話中執行多個請求。默認不啟用KeepAlive功能。

-d

不顯示"percentage served within XX [ms] table"消息(為以前的版本提供支持)。

-S

不顯示中值和標準偏差值,而且在均值和中值為標準偏差值的1到2倍時,也不顯示警告或出錯信息。默認時,會顯示最小值/均值/最大值等數值。(為以前的版本提供支持)

-g gnuplot-file

把所有測試結果寫入一個"gnuplot"或者TSV(以Tab分隔)文件。此文件可以方便地導入到 Gnuplot, IDL, Mathematica, Excel中。其中的第一行為標題。

-e csv-file

產生一個逗號分隔(CSV)文件,其中包含了處理每個相應百分比請求(從1%到100%)所需要的相應百分比時間(以微秒為單位)。由于這種格式已經"二進制化",所以比"gnuplot"格式更有用。

-h

顯示使用方法的幫助信息。

1.2.  舉例
復制代碼

ab -c 10 -n 10 -t 30 http://www.google.com/

輸出樣例:

This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Copyright 2006 The Apache Software Foundation, http://www.apache.org/

 

Benchmarking www.google.com (be patient)

Finished 779 requests

 

 

Server Software:        gws

Server Hostname:        www.google.com

//服務器主機名

ServerPort:            80

//服務器端口

Document Path:          /

//測試的頁面文檔

Document Length:        458 bytes

//文檔大小

Concurrency Level:      10

//并發數

Time taken for tests:   30.87239 seconds

//整個測試持續的時間

Complete requests:      779

//完成的請求數量

Failed requests:        0

//失敗的請求數量

Write errors:           0

Non-2xx responses:      779

Total transferred:      1004131 bytes

//整個場景中的網絡傳輸量

HTML transferred:       356782 bytes

//整個場景中的HTML內容傳輸量

Requests per second:    25.89 [#/sec] (mean)

//大家最關心的指標之一,相當于 LR 中的 每秒事務數 ,后面括號中的 mean 表示這是一個平均值

Time per request:       386.229 [ms] (mean)

//大家最關心的指標之二,相當于 LR 中的 平均事務響應時間 ,后面括號中的 mean 表示這是一個平均值

Time per request:       38.623 [ms] (mean, across all concurrent requests)

//每個請求實際運行時間的平均值

Transfer rate:          32.57 [Kbytes/sec] received

//平均每秒網絡上的流量,可以幫助排除是否存在網絡流量過大導致響應時間延長的問題

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:       36  167 100.1    132     735

Processing:    62  215 143.6    171     910

Waiting:       61  203 117.4    167     909

Total:         98  382 175.8    344    1243

//網絡上消耗的時間的分解,各項數據的具體算法還不是很清楚

/*下面的內容為整個場景中所有請求的響應情況。在場景中每個請求都有一個響應時間,其中 50% 的用戶響應時間小于 3064 毫秒,60 % 的用戶響應時間小于 3094 毫秒,最大的響應時間小于 3184 毫秒*/

Percentage of the requests served within a certain time (ms)

  50%    344

  66%    395

  75%    451

  80%    520

  90%    626

  95%    716

  98%    931

  99%    977

 100%   1243 (longest request)

2.webbench

webbench是有名的網站壓力測試工具,它是由Lionbridge公司開發。

Webbech 能測試處在相同硬件上,不同服務的性能以及不同硬件上同一個服務的運行狀況。webBech的標準測試可以向我們展示服務器的兩項內容:每秒鐘相應請求數 和每秒鐘傳輸數據量。webbench不但能具有便準靜態頁面的測試能力,還能對動態頁面(ASP,PHP,JAVA,CGI)進行測試的能力。還有就是 他支持對含有SSL的安全網站例如電子商務網站進行靜態或動態的性能測試。

2.1.  參數說明



-f –force

不等服務器回復

-r –reload

發送重新load請求,等同于Pragma:no-cache.

-t –time

測試所進行的最大秒數。默認30。

-p –proxy

使用代理服務器

-c --clients

一次產生的請求個數。默認是1。

-9 --http09

使用http/0.9協議

-1 --http10

使用http/1.0協議

-2 –http11

使用http/1.1協議

--get

使用get請求方法

--head

使用head請求方法

--options

使用options請求方法

--trace

使用trace請求方法

-? –h –help

顯示幫助信息

-V –version

顯示程序的版本信息

2.2.  例子

webbench -c 100 -t 30 http://www.google.com/

輸出樣例:

Webbench - Simple Web Benchmark 1.5

Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

 

Benchmarking: GET http://www.google.com/

100 clients, running 30 sec.

 

Speed=4028 pages/min, 86577 bytes/sec.

Requests: 2014 susceed, 0 failed.



 
3.http_load

程序非常小,解壓后也不到100K

http_load以并行復用的方式運行,用以測試web服務器 的吞吐量與負載 。但是它不同于大多數壓力測試工具,它可以以一個單一的進程運行,一般不會把客戶機搞死。還可以測試HTTPS類的網站請求。

官網:http://www.acme.com/software/http_load/

下載地址:

wget http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz

3.1.  參數說明



-parallel 簡寫-p :含義是并發的用戶進程數。

-fetches 簡寫-f :含義是總計的訪問次數

-rate    簡寫-r :含義是每秒的訪問頻率

-seconds簡寫-s :含義是總計的訪問時間

3.2.  例子

http_load -p 20 -f 20 www.chedong.com.url

輸出樣例:

20 fetches, 20 max parallel, 790105 bytes, in 4.34421 seconds

//說明在上面的測試中運行了20個請求,最大的并發進程數是20,總計傳輸的數據是790105bytes,運行的時間是4.34421秒

39505.2 mean bytes/connection

//說明每一連接平均傳輸的數據量790105/20=39505.2

4.60383 fetches/sec, 181875 bytes/sec

//說明每秒的響應請求為4.60383,每秒傳遞的數據為181875 bytes/sec

msecs/connect: 305.351 mean, 3151.05 max, 146.267 min

//說明每連接的平均響應時間是305.351msecs,最大的響應時間3151.05msecs,最小的響應時間146.267msecs

msecs/first-response: 772.81 mean, 1555.86 max, 155.245 min

HTTP response codes:

  code 200 -- 20

//說明打開響應頁面的類型,如果403的類型過多,那可能要注意是否系統 遇到了瓶頸。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

回復列表

3d专家预测组三组六方法 江苏体彩7位数机选 600311股票行 福彩即开型彩票有几种 赛车的速度有多快 福彩东方6十i基本走势图 网上什么兼职靠谱还赚钱 安徽11选5 五肖期期中特免费公开 南京麻将进园子什么意思 欧冠赛程半决赛