1. 程式人生 > >JMeter學習(二十五)HTTP屬性管理器HTTP Cookie Manager、HTTP Request Defaults

JMeter學習(二十五)HTTP屬性管理器HTTP Cookie Manager、HTTP Request Defaults

Test Plan的配置元件中有一些和HTTP屬性相關的元件:HTTP Cache Manager、HTTP Authorization Manager、HTTP Cookie Manager、HTTP Header Manager、HTTP Request Defaults等,這些是什麼呢?

JMeter不是瀏覽器,因此其行為並不和瀏覽器完全一致。這些JMeter提供的HTTP屬性管理器用於儘可能模擬瀏覽器的行為,在HTTP協議層上定製傳送給被測應用的HTTP請求。

(1)HTTP Request Defaults

該屬性管理器用於設定其作用範圍內的所有HTTP的預設值,可被設定的內容包括HTTP請求的host、埠、協議等。

一個Test Plan中可以有多個HTTP Request Defaults,處於多個HTTP Request Defaults作用域內的Sampler使用HTTP Request Defaults中設定值的疊加值。

事例

HTTP Request Defaults1:Server Name or IP: www.baidu.com,一個引數:aaa=111

HTTP Request Defaults2:Server Name or IP: www.qq.com,兩個引數:bbb=22,aaa=333

執行結果

總結:

1、一個測試計劃中可以有多個Defaults元件,多個Defaults元件的預設值會疊加,如上圖,雖然兩個Defaults 元件都定義了引數aaa,但發出的請求還是會疊加起來。

2、兩個default中都定義的"Server Name or IP",顯示在傳送請求時只能使用一個,這裡使用的是第一個default定義的值www.baidu.com

事例程式碼:下載

 

(2)HTTP Authorization Manager

該屬性管理器用於設定自動對一些需要NTLM驗證的頁面進行認證和登入。如下圖:監控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檢查響應體中的制定內容是否存在,該Assertion就會失敗。

 

(4)HTTP Cookie Manager

該屬性管理器用於管理Test Plan執行時的所有Cookie。HTTP Cookie Manager可以自動儲存伺服器傳送給客戶端的所有Cookie,並在傳送請求時附加上合適的Cookie.

同時,使用者也可以在HTTP Cookie Manager中手工新增一些Cookie,這些被手工新增的Cookie會在傳送請求時被自動附加到請求。

注意:

    如果在一個測試計劃內有多個Cookie Manager ,Jmeter目前無法指定哪個被使用。所以,一個測試計劃內最好只有一個cookie manager。並且,一個manager裡的 cookie 並不能被其它manager所引用。所以在使用多個Cookie Managers 時要謹慎。  

   同理,上面這個規則同樣適用於config element下面的其它manager:

 

如果選中"Clear cookies each iteration?"此項,意味著執行緒在每次迭代時清除自己會話中的所有Cookie.

 

(5)HTTP Header Manager

該屬性管理器用於定製Sampler發出的HTTP請求的請求頭的內容。不同的瀏覽器發出的HTTP請求具有不同的Agent,訪問某些有防盜鏈的頁面時需要正確的Refer...這些情況下都需要通過HTTP Header Manager來保證傳送的HTTP請求是正確的。如下圖: