圖2 JMeter 聚合報告
第三, 查驗一下Jmeter日志(文件位置:JMeter_Home_Directory/bin) 的后一個線程開始時第一個線程是否真正結(jié)束了,二者的時間差是否正常。
總之,是否能確定一個適當?shù)膔amp-up time 取決于以下兩條規(guī)則:
·第一個取樣器的點擊率(hit rate)是否接近其他取樣器的平均值,從而能否避免ramp-up period 過小。
·在后一個線程啟動時,第一個線程是否在真正結(jié)束了,好二者的時間要盡可能的長,以避免ramp-up period過大。
有時,這兩條規(guī)則的結(jié)論會互相沖突。 這意味著無法找到同時滿足兩條規(guī)則的合適的ramp-up period。 糟糕的測試計劃通常會導(dǎo)致這些問題,這是因為在這樣的測試計劃里,取樣器將不能充分地采集數(shù)據(jù),可能因為測試計劃執(zhí)行時間太短并且線程會很快的運行結(jié)束。
用戶思考時間(User think time),定時器,和代理服務(wù)器(proxy server)
在負載測試中需要考慮的的一個重要要素是思考時間(think time), 也是在兩次成功的訪問請求之間的暫停時間。 有多種情形揮發(fā)導(dǎo)致延遲的發(fā)生: 用戶需要時間閱讀文字內(nèi)容,或者填表, 或者查找正確的鏈接等。未認真考慮思考時間經(jīng)常會導(dǎo)致測試結(jié)果的失真。例如,估計數(shù)值不恰當,也是被測系統(tǒng)可以支持的多用戶量(并發(fā)用戶)看起來好像要少一些等。
Jmeter提供了一整套的計時器(timer)來模擬思考時間(think time), 但是仍舊存在一個問題:: 如何確定適當?shù)乃伎紩r間呢?幸運的是, JMeter 提供了一個不錯的答案:使用 JMeter HTTP 代理服務(wù)器(Proxy Server)元件。
代理服務(wù)器會記錄在使用一個普通的瀏覽器(如FireFox 或 Internet Explorer)瀏覽一個web應(yīng)用時的操作。 另外, JMeter 在記錄操作的同時會建立一個測試計劃(test plan)。 這個功能能提供以下便利:
·不必手工建立HTTP 訪問請求, 尤其是當要設(shè)置一些令人乏味的參數(shù)時(然而,非英文的參數(shù)也許不能正常工作) 。JMeter 將會錄制包括隱含字段(hidden fields)在內(nèi)的所有內(nèi)容。
·在生成的測試計劃中,Jmeter會包含瀏覽器生成的所有的 HTTP 報頭,如User-Agent (e。g。, Mozilla/4。0), 或Aclearcase/" target="_blank" >cceptLanguage (e。g。, zh-tw,en-us;q=0。7,zh-cn;q=0。3)等。
·JMeter 會根據(jù)設(shè)置在錄制操作的同時建立一些定時器,其延遲時間是完全根據(jù)真實的操作來設(shè)置的
現(xiàn)在讓我們來看一下如何配置Jmeter的錄制功能。 在JMeter 的控制臺上, 在工作臺(WorkBench)元件上單擊右鍵,然后選擇”add the HTTP Proxy Server “。 注意是在WorkBench 上單擊右鍵而不是在Test Plan上, 因為現(xiàn)在是要為記錄操作進行配置而不是要運行測試計劃。 HTTP Proxy Server 的實現(xiàn)原理是通過配置瀏覽器的代理服務(wù)器而使所有的訪問請求通過JMeter發(fā)送(,因而被Jmeter把訪問過程錄制下來)。
如圖3所示, HTTP代理服務(wù)器(HTTP Proxy Server)元件的一些參數(shù)必須被配置:
·端口(port): 代理服務(wù)器的監(jiān)聽端口
·目標控制器(Target Controller): 是代理用于存儲生成的數(shù)據(jù)的控制器,默認情況下,, JMeter 將會在當前的測試計劃中找一個記錄用的控制器用于存儲,此外也可以在下拉菜單中選擇任意控制起來存儲,通常默認值可以了。
·分組(Grouping): 確定在測試計劃中如何來為生成的元件分組。 有多個選項, 一般可以選擇“只存儲每個組的第一個樣本”,否則,將會原樣錄制URLs,包括包含圖像和JavaScripts腳本的頁面。當然 也可以嘗試一下默認值“不對樣本分組”("Do not group samples"),來看一下JMeter 建立的原版的測試計劃。
·包含模式(Patterns to Include) 和 排除模式(Patterns to Exclude) :幫助過濾一些不需要的訪問請求。
圖 3。 JMeter 代理服務(wù)器(Proxy Server)。
當你點擊開始(Start)按鈕時,代理服務(wù)器會開始記錄所接受的HTTP 訪問請求。 當然,在開始記錄前,要首先設(shè)置好瀏覽器的代理服務(wù)器設(shè)置。在代理服務(wù)器元件中可以增加一個定時器子元件(配置元件),用于告知Jmeter來在其生成的HTTP請求中自動的增加一個定時器。Jmeter會自動把實際的延遲時間存儲為一個被命名為T的Jmeter變量,因此,如果在代理服務(wù)器元件里使用了高斯隨機定時器,應(yīng)該在其中的固定延遲偏移(Constant Delay Offset)設(shè)置項里添上${T}(用于自動引用紀錄的延遲時間),如圖4所示。這是另一個節(jié)省時間的便利特性。