用戶思考時間(User think time),定時器,和代理服務器(proxy server)
在負載測試中需要考慮的的一個重要要素是思考時間(think time), 也就是在兩次成功的訪問請求之間的暫停時間。 有多種情形揮發導致延遲的發生: 用戶需要時間閱讀文字內容,或者填表, 或者查找正確的鏈接等。未認真考慮思考時間經常會導致測試結果的失真。例如,估計數值不恰當,也就是被測系統可以支持的最多用戶量(并發用戶)看起來好像要少一些等。
Jmeter提供了一整套的計時器(timer)來模擬思考時間(think time), 但是仍舊存在一個問題:: 如何確定適當的思考時間呢?幸運的是, JMeter 提供了一個不錯的答案:使用 JMeter HTTP 代理服務器(Proxy Server)元件。
代理服務器會記錄在使用一個普通的瀏覽器(如FireFox 或 Internet Explorer)瀏覽一個web應用時的操作。 另外, JMeter 在記錄操作的同時會建立一個測試計劃(test plan)。 這個功能能提供以下便利:
·不必手工建立HTTP 訪問請求, 尤其是當要設置一些令人乏味的參數時(然而,非英文的參數也許不能正常工作) 。JMeter 將會錄制包括隱含字段(hidden fields)在內的所有內容。
·在生成的測試計劃中,Jmeter會包含瀏覽器生成的所有的 HTTP 報頭,如User-Agent (e。g。, Mozilla/4。0), 或AcceptLanguage (e。g。, zh-tw,en-us;q=0。7,zh-cn;q=0。3)等。
·JMeter 會根據設置在錄制操作的同時建立一些定時器,其延遲時間是完全根據真實的操作來設置的
現在讓我們來看一下如何配置Jmeter的錄制功能。 在JMeter 的控制臺上, 在工作臺(WorkBench)元件上單擊右鍵,然后選擇”add the HTTP Proxy Server “。 注意是在WorkBench 上單擊右鍵而不是在Test Plan上, 因為現在是要為記錄操作進行配置而不是要運行測試計劃。 HTTP Proxy Server 的實現原理就是通過配置瀏覽器的代理服務器而使所有的訪問請求通過JMeter發送(,因而被Jmeter把訪問過程錄制下來)。
如圖3所示, HTTP代理服務器(HTTP Proxy Server)元件的一些參數必須被配置:
·端口(port): 代理服務器的監聽端口
·目標控制器(Target Controller): 是代理用于存儲生成的數據的控制器,默認情況下,, JMeter 將會在當前的測試計劃中找一個記錄用的控制器用于存儲,此外也可以在下拉菜單中選擇任意控制起來存儲,通常默認值就可以了。
·分組(Grouping): 確定在測試計劃中如何來為生成的元件分組。 有多個選項, 一般可以選擇“只存儲每個組的第一個樣本”,否則,將會原樣錄制URLs,包括包含圖像和JavaScripts腳本的頁面。當然 也可以嘗試一下默認值“不對樣本分組”("Do not group samples"),來看一下JMeter 建立的原版的測試計劃。
文章來源于領測軟件測試網 http://www.kjueaiud.com/