1. 程式人生 > >如何測試一個網站的效能(併發數)?

如何測試一個網站的效能(併發數)?

JMeter網站併發性測試

Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試但後來擴充套件到其他測試領域。 它可以用於測試靜態和動態資源例如靜態檔案、Java小服務程式、CGI指令碼、Java 物件、資料庫, FTP伺服器, 等等。JMeter 可以用於對伺服器、網路或物件模擬巨大的負載,來在不同壓力類別下測試它們的強度和分析整體效能。另外,JMeter能夠對應用程式做功能/迴歸測試,通過建立帶有斷言的指令碼來驗證你的程式返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表示式建立斷言。

多的不說了:直接上操作:由於JMeter是使用java開發的,所以執行需要java的執行環境。接觸過java的人都知道,java環境的搭建,不是我們現在討論的東西,所以不會的,自己度娘哈。

1. 下載JMeter

2. 啟動JMeter

話不多說,直接上圖:首先解壓apache-jmeter-2.9,進入bin目錄:點選jmeter.bat。啟動軟體
開始介面:

1) 建立執行緒。模擬多使用者訪問:步驟如下



為什麼要建立執行緒組?原因很簡單,因為我們要模擬多個執行緒(使用者)來訪問web網站。執行緒屬性部分中,執行緒數是啟動多少個執行緒,比如:我這裡填寫的是10,Ramp-Up Period (in seconds)表示執行緒之間間隔多少時間允許,單位是秒,比如如果填寫10,那麼10/10=1表示10個執行緒間每隔1秒鐘請求網站。迴圈次數:60個執行緒執行完畢算是一次,迴圈次數就是這樣的一個請求過程執行多少次,我這裡測試就填寫的是2。每次修改一個設定後,別忘記了儲存一下。


2) 設定請求伺服器、壓力連結等資訊

接下來很自然的是,我們要測試的網站地址是什麼?連結是什麼?所以現在我們就來設定這些資訊。右鍵點選我們剛建立的執行緒組,在彈出的選單中,選擇新增->Sampler->Http請求,彈出如下圖介面:



路徑:

假如你只是對一個連結進行壓力測試,直接填寫一個連結就ok,比如 http://www.baidu.com,但是大多數情況下都不是這樣的,我們這裡需要多個連結,就如同剛開始講到的那樣,我們要將多個連結儲存到一個文字檔案中,然後隨機讀取進行壓力測試。我們可以這麼做,如圖:


在選擇一個功能下拉列表中選擇_StringFromFile,然後在本機新建一個測試檔案C:\Users\root\Desktop\apache-jmeter-2.9\test.txt,在第一行(你也可以不在第一行)的值中填寫測試檔案的路徑,如下圖:


然後點選“生成”按鈕,在生成按鈕的左邊文字框中將生成一個字串如:

${__StringFromFile(C:\Users\wukong\Desktop\test.txt,,,)}

test.txt測試檔案中,我們每行寫一個URL連結,如下格式:

如果地址是:www.quzhuanpan.com.那麼。在test.txt中的內容,就是相對地址;如


這樣一來,當我們並非請求的時候,就會從test.txt中隨機選擇url來進行壓力測試。

另外值得注意的一個地方是,如果引數中有中文的情況,執行的時候可能會出現亂碼,這個時候就需要注意你在Jmeter中的編碼設定與你要請求的網頁編碼是一致的。

路徑文字框下面的選項,可以按預設的就成,Use multipart/form-data for HTTP POST是當請求中有附件的情況,一般情況下都不用選中的

3) 檢視執行結果

滑鼠右鍵點選執行緒組,在彈出的選單中選擇新增->監聽器->用表格查詢結果,如下圖:




各屬性如下:

  • Sample:每個請求的序號
  • Start Time:每個請求開始時間
  • Thread Name:每個執行緒的名稱
  • Label:Http請求名稱
  • Sample Time:每個請求所花時間,單位毫秒
  • Status:請求狀態,如果為勾則表示成功,如果為叉表示失敗。
  • Bytes:請求的位元組數

在下面還有幾個引數

  • 樣本數目:也就是上面所說的請求個數,成功的情況下等於你設定的併發數目乘以迴圈次數
  • 平均:每個執行緒請求的平均時間
  • 最新樣本:表示伺服器響應最後一個請求的時間
  • 偏離:伺服器響應時間變化、離散程度測量值的大小。

到這裡,我們已經做了一個簡單的網站併發性測試。還有其他功能,就自己捉摸吧,嘿嘿。