Test Plan的配置元件中有一些和HTTP屬性相關的元件:HTTP Cache Manager、HTTP Authorization Manager穴肘、HTTP Cookie Manager歇盼、HTTP Header Manager舔痕、HTTPRequest Defaults等评抚,這些是什么呢豹缀?
JMeter不是瀏覽器,因此其行為并不和瀏覽器完全一致慨代。這些JMeter提供的HTTP屬性管理器用于盡可能模擬瀏覽器的行為邢笙,在HTTP協(xié)議層上定制發(fā)送給被測應用的HTTP請求。
(1)HTTPRequest Defaults
該屬性管理器用于設置其作用范圍內(nèi)的所有HTTP的默認值侍匙,可被設置的內(nèi)容包括HTTP請求的host氮惯、端口、協(xié)議等想暗。
一個Test Plan中可以有多個HTTPRequest Defaults妇汗,處于多個HTTPRequest Defaults作用域內(nèi)的Sampler使用HTTPRequest Defaults中設置值的疊加值。
事例:
HTTP Request Defaults1:Server Name or IP: www.baidu.com说莫,一個參數(shù):aaa=111
HTTP Request Defaults2:Server Name or IP: www.qq.com杨箭,兩個參數(shù):bbb=22,aaa=333
運行結(jié)果:
總結(jié):
1、一個測試計劃中可以有多個Defaults組件储狭,多個Defaults組件的默認值會疊加互婿,如上圖,雖然兩個Defaults 組件都定義了參數(shù)aaa辽狈,但發(fā)出的請求還是會疊加起來慈参。
2、兩個default中都定義的"Server Name or IP"刮萌,顯示在發(fā)送請求時只能使用一個驮配,這里使用的是第一個default定義的值www.baidu.com
事例代碼:下載
(2)HTTP Authorization Manager
該屬性管理器用于設置自動對一些需要NTLM驗證的頁面進行認證和登錄。如下圖:監(jiān)控tomcat
(3)HTTP Cache Manager
該屬性管理器用于模擬瀏覽器的Cache行為着茸。為Test Plan增加該屬性管理器后僧凤,Test Plan運行過程中會使用Last-Modified、ETag和Expired等決定是否從Cache中獲取相應的元素元扔。
注意:如果Test
Plan中的某個Sampler請求的元素是被Cache的元素躯保,則Test
Plan在運行過程中會直接從Cache中讀取該元素,這樣Sampler得到的返回值就會是空澎语。在這種情況下途事,如果為該Sampler設置了
Assertion檢查響應體中的制定內(nèi)容是否存在,該Assertion就會失敗擅羞。
(4)HTTP Cookie Manager
該屬性管理器用于管理Test Plan運行時的所有Cookie尸变。HTTP Cookie Manager可以自動儲存服務器發(fā)送給客戶端的所有Cookie,并在發(fā)送請求時附加上合適的Cookie.
同時减俏,用戶也可以在HTTP Cookie Manager中手工添加一些Cookie召烂,這些被手工添加的Cookie會在發(fā)送請求時被自動附加到請求。
注意:
如果在一個測試計劃內(nèi)有多個Cookie Manager 娃承,Jmeter目前無法指定哪個被使用奏夫。所以怕篷,一個測試計劃內(nèi)最好只有一個cookie manager。并且酗昼,一個manager里的 cookie 并不能被其它manager所引用廊谓。所以在使用多個Cookie Managers 時要謹慎。
同理麻削,上面這個規(guī)則同樣適用于config element下面的其它manager:
如果選中"Clear cookies each iteration蒸痹?"此項,意味著線程在每次迭代時清除自己會話中的所有Cookie.
(5)HTTP Header Manager
該屬性管理器用于定制Sampler發(fā)出的HTTP請求的請求頭的內(nèi)容呛哟。不同的瀏覽器發(fā)出的HTTP請求具有不同的Agent叠荠,訪問某些有防盜鏈的
頁面時需要正確的Refer...這些情況下都需要通過HTTP Header Manager來保證發(fā)送的HTTP請求是正確的。如下圖: