1. 程式人生 > >Jmeter中主要管理器功用

Jmeter中主要管理器功用

last 定義 用戶 重新 cache fault 策略 決定 頭部

廢話不多說,不管是在使用jmeter進行性能測試還是接口自動化測試時經常用到各種管理器進行對參數的處理,但是有時候分不清幾種管理器的具體用法,所以做個筆記,列一下吧(所列內容基於版本為3.2)

主要內容包含以下:

1、HTTP Requests Defaults(HTTP默認請求值)

2、HTTP Authorization Manager (HTTP授權管理器)

3、HTTP Cache Manager(HTTP Cache管理器)

4、HTTP cookie Manager(HTTP cookie管理器)

5、HTTP header Manager(HTTP 信息頭管理器)

現在對以上5中管理器的功用進行解釋說明:

1、HTTP Requests Defaults(HTTP默認請求值)

主要作用:對設置其作用範圍內的所有的請求有效,其設置的參數會作用於作用範圍內所有的請求。

技術分享圖片

參數作用說明如下:

名稱:自由設置,不影響實際的測試結果,最好具有標題的意義。

web服務器:

  協議(Protocol):表示向服務端發送的請求的協議,默認為HTTP,用的較多的是HTTP和HTTPS,可以根據實際情況進行自由填寫;

  服務器名稱或IP(Server Name or IP):填寫正常測試時所需要請求的地址的域名或者服務端IP,如:www.beidu.com、192.168.0.100;

  端口號(Prot Number):填寫服務器名稱或者IP對應的訪問端口,如:80、8080;

HTTP請求:

  路徑(Path):填寫請求地址中公共的除服務器名稱或IP或協議的部分,如:地址http://www.laowang.com/path/name/omaiga?中的/path/name/omaiga部分;

  Content encoding(編碼): 默認為ISO8859,可以設置為gbk,utf-8;

選擇parameters後點擊“添加”可以增加輸入參數值對的輸入框,填寫默認公共的HTTP請求主體內容,一次只能填寫一個,如圖;

選擇body Data 後顯示的是文本框,可以填寫多個參數值對,中間用“&”符號連接,如:usernam=andmin&psw=andmin;

該元件所產生的作用域的效果會疊加,如有兩個給元件同時有效,則兩個元件對http求將隨機發揮作用。

2、HTTP Authorization Manager (HTTP授權管理器)

技術分享圖片

作用:主要用於對一些需要NTLM(全稱:NT LAN Manager,是一種安全協議)驗證的頁面進行認證和登錄;

名稱:自由定義,不參與實際請求過程;

clear auth on each iteration? :每次叠代是否清空憑證,如果每次都清空,則在每次請求的的時候都需要重新進行驗證;

基礎URL(Base URL):指定需要使用NTLM認證的頁面基礎URL,當請求此頁面是就發送相關的驗證信息進行頁面驗證;

用戶名(Username):用於認證和登錄的用戶名,如圖中的andmin;

密碼(Password):用於認證和登錄的口令;

(Domain):NTLM使用的域名;

Realm:Realm字串;

Mechanism:暫時不理解,不發表闡述。

關於NTLM:

  1. 客戶端加密密碼成為密碼散列;
  2. 客戶端向服務端以明文方式發送賬號;
  3. 服務端隨機產生並發送給客戶端一個16位的數字串,作為令牌;
  4. 客戶端用密碼散列加密令牌,然後將加密後的結果發送給服務端;
  5. 服務端把賬號、令牌、4步驟中加密後的結果,一起發送給域控制器;
  6. 域控制器用賬號在SAM密碼管理器中找到密碼散列並用此去加密令牌;
  7. 域控制器對比兩次加密後的結果,如果一樣,則認證成功。

  該元件的作用不具有疊加效果。

3、HTTP Cache Manager(HTTP Cache管理器)

技術分享圖片

作用:用來模擬瀏覽器的Cache行為;

功效:為Test Pian增加給管理器後,Test Pian運行過程中會使用Last-MOdified(最後一次被修改的時間)、ETag(http內容之一。被請求變量的實體值)、Expired(用於控制請求文件的有效時間)等決定是個從Cache中獲取相應的元素;

Clear cache each iteration?:每次叠代是否都清空緩存。如果選中,則在每次請求後都會將對應請求產生的緩存進行清除;

Use Cache-Control/Expires header when processing GET requests:在處理GET請求時使用緩存/過期信息頭;

Max Number of elements in cache:緩存中最大的元素數。默認5000.可以根據實際需要進行修改。

4、HTTP cookie Manager(HTTP cookie管理器)

技術分享圖片

作用:用於管理Test plan運行時的所有的cookie。可以手動存儲,也可以自動存儲;

每次反復清除cookie?:勾選後將每次請求結束後都會將本次請求產生的cookie進行清除,下次請求時重新獲取。

Implementation:履行的協議。

Cookie Policy:cookie的管理策略。建議選擇Standard或Standard strict。這種兼容性設計要求是適應盡可能多的不同的服務器,也就是兼容性更好。

前邊說到既可以自動存儲也可以手動添加cookie,兩者的區別如下:

自動存儲:自動記錄每一個請求所產生的cookie,在後邊的同源站點進行請求時都可以使用對應的cookie並發送,它都有自己的存儲區域。每一個cookie是完全獨立的,即當遇到非同源站點時請求所帶的cookie將不一樣,其行為與瀏覽器行為是一致的。

註:這種自動收集cookie不會在cookie manager中進行展示,但是運行後通過查看結果樹可以查看到cookie信息,接受到的cookie會被自動存儲在線程變量中,在2.3.2版本之後不再存儲,如果你想要manager自動存儲收集到 的cookie,你需要修改JMeter.property:CookieManager.save.cookies=true;

手動存儲:手動添加的cookie具有全局性,會在發送請求時自動附加到所有的請求中,即被所有的請求所共享。手動添加可以采用兩種方式,一、一個一個的慢慢添加;二、直接利用瀏覽器的插件(如火狐的firebug)導出技術分享圖片。然後通過load按鈕將cookie進行導入。

cookie的分類:分為持久cookie和會話cookie;

持久cookie:持久cookie保存在客戶端本地的硬盤中,瀏覽器關閉後依然存在;

會話cookie:會話cookie保存的瀏覽器的進程會話中,瀏覽器關閉後就隨之被清除

5、HTTP header Manager(HTTP 信息頭管理器)

技術分享圖片

作用:用於定制Sampler發出的HTTP請求的請求頭內容

在請求需要一些驗證信息時使用的較多,在http請求之前添加一個信息頭管理器,將所需的頭信息以鍵值對的顯示添加進去,則在後邊的HTTP請求發送時則將使用該管理器中的header信息

首先查看請求的頭部信息,如下:

技術分享圖片

將這些請求頭放進信息頭管理中,就能使你能夠更真實的模擬該接口的訪問,將這些放進Jmeter中,可以手動一條一條的添加,也可以通過“加載”按鈕將信息導入,添加後效果如圖

參考博文:老張:https://www.cnblogs.com/imyalost/p/7062440.html

寫的比較淺,歡迎留言補全,謝絕copy

Jmeter中主要管理器功用