上一節中,我們了解了jmeter的一此主要元件,那么這些元件如何使用到性能測試中呢。這一節創建一個簡單的測試計劃來使用這些元件。該計劃對應的測試需求。
1)測試目標網站是fnng.cnblogs.com 和 tt-topia.rhcloud.com
2)測試目的是該網站在負載達到20 QPS 時的響應時間。
QPS 解釋
QPS : Query Per Second 每秒查詢率。是一臺查詢服務器每秒能夠處理的查詢次數。在因特網上,作為域名系統服務器的機器的性能經常用每秒查詢率來衡量。
為了達成預期的測目的,需要需要在jmeter中建立一個測試計劃。因為本次測試僅要求完成對fnng.cnblogs.com 和 tt-topia.rhcloud.com 兩個博客首頁請求,因此只需要使用HTTP Request Sampler 即可。
建立測試計劃
啟動jmeter后,jmeter會自動生成一個空的測試計劃,用戶可以基于該測試計劃建立自己的測試計劃。
添加線程組
一個性能測試請求負載是基于一個線程組完成的。一個測試計劃必須有一個線程組。測試計劃添加線程組非常簡單。在測試計劃右鍵彈出下拉菜單(添加-->Threads(Users)--->線程組)中選擇線程組即可。
jmeter中 每個測試計劃至少需要包含一個線程組,當然也可以在一個計劃中創建多個線程組,那么多個線程組之間又會怎樣的順序執行(串行還是并行)?在測試計劃下面多個線程是并行執行的,也就是說這些線程組是同時被初始化并同時執行線程組下的Sampler的。
線程組主要包含三個參數:線程數、準備時長(Ramp-Up Period(in seconds))、循環次數。
線程數:虛擬用戶數。一個虛擬用戶占用一個進程或線程。設置多少虛擬用戶數在這里也就是設置多少個線程數。
準備時長: 設置的虛擬用戶數需要多長時間全部啟動。如果線程數為20 ,準備時長為10 ,那么需要10秒鐘啟動20個線程。也就是每秒鐘啟動2個線程。
循環次數:每個線程發送請求的次數。如果線程數為20 ,循環次數為100 ,那么每個線程發送100次請求??傉埱髷禐?0*100=2000 。如果勾選了“永遠”,那么所有線程會一直發送請求,一到選擇停止運行腳本。
設置合理的線程數對于能否達到測試目標有決定性的影響。在本例中,要求得到網站首頁在20 QPS 負載情況下的響應時間,如果如果線程數量設置的過小,則很可能無法達到設定的QPS要求。另外,設置合理的循環次數也很重要,除了上面介紹的固定循環次數與永遠外;也可以靈活的選擇設定測試運行時間。勾選“調度器”,進行調度器配置。
添加HTTP請求
添加完成線程組后,在線程組上右鍵菜單(添加--->Sampler--->HTTP請求)選擇HTTP請求。對于jmeter來說,取樣器(Sampler)是與服務器進行交互的單元。一個取樣器通常進行三部分的工作:
向服務器發送請求
記錄服務器的響應數據
記錄相應時間信息
一個HTTP請求有著許多的配置參數,下面將詳細介紹:
名稱:本屬性用于標識一個取樣器,建議使用一個有意義的名稱。
注釋:對于測試沒有任何作用,僅用戶記錄用戶可讀的注釋信息。
服務器名稱或IP :HTTP請求發送的目標服務器名稱或IP地址。
端口號:目標服務器的端口號,默認值為80 。
協議:向目標服務器發送HTTP請求時的協議,可以是http或者是https ,默認值為http 。
方法:發送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
Content encoding :內容的編碼方式,默認值為iso8859
路徑:目標URL路徑(不包括服務器地址和端口)
自動重定向:如果選中該選項,當發送HTTP請求后得到的響應是302/301時,JMeter 自動重定向到新的頁面。
Use keep Alive : 當該選項被選中時,jmeter 和目標服務器之間使用 Keep-Alive方式進行HTTP通信,默認選中。
Use multipart/from-data for HTTP POST :當發送HTTP POST 請求時,使用Use multipart/from-data方法發送,默認不選中。
同請求一起發送參數 : 在請求中發送URL參數,對于帶參數的URL ,jmeter提供了一個簡單的對參數化的方法。用戶可以將URL中所有參數設置在本表中,表中的每一行是一個參數值對(對應RUL中的 名稱1=值1)。
同請求一起發送文件:在請求中發送文件,通常,HTTP文件上傳行為可以通過這種方式模擬。
從HTML文件獲取所有有內含的資源:當該選項被選中時,jmeter在發出HTTP請求并獲得響應的HTML文件內容后,還對該HTML進行Parse 并獲取HTML中包含的所有資源(圖片、flash等),默認不選中,如果用戶只希望獲取頁面中的特定資源,可以在下方的Embedded URLs must match 文本框中填入需要下載的特定資源表達式,這樣,只有能匹配指定正則表達式的URL指向資源會被下載。
用作監視器:此取樣器被當成監視器,在Monitor Results Listener 中可以直接看到基于該取樣器的圖形化統計信息。默認為不選中。
Save response as MD5 hash? :選中該項,在執行時僅記錄服務端響應數據的MD5值,而不記錄完整的響應數據。在需要進行數據量非常大的測試時,建議選中該項以減少取樣器記錄響應數據的開銷。
在這里我們添加兩個HTTP請求,分別用于對fnng.cnblogs.com 和 tt-topia.rhcloud.com發送請求。
設置QPS限制
本次性能測試的需求中提到測試的目的是“了解博客的首頁在負載達到20 QPS時的響應時間”,因此需要控制向博客首頁發送請求的負載為20QPS。
原文轉自:http://www.cnblogs.com/fnng/archive/2012/12/22/2829479.html