『動善時』JMeter基礎 — 21、HTTP Cookie管理器的使用


上一篇文章詳細的介紹了HTTP Cookie管理器的作用和內容,本篇文章詳細的說明一下使用。

我們使用一個電商項目進行演示,在調用登錄接口完成登錄之后,通過查看購物車接口獲取該用戶購物車中的信息。也就是說如果需要查看到購物車中的信息,則我們先要是登陸狀態,這樣的情況下,就需要有Cookie信息的存在了。

提示:要獲取購物車接口中的信息,需要使用登錄后的Cookie保持登錄狀態。

1、在HTTP信息頭管理器組件中添加Cookie信息

實現步驟:

  1. 前提我們手動登陸電商網站,地址:http://www.testingedu.com.cn:8000/index.php/Home/user/login.html
  2. 然后通過工具獲取到登陸后的Cookie數據。
  3. 把Cookie數據存儲到HTTP信息頭管理器組件中。
  4. 直接查看該用戶的購物車數據。

提示:關於該網站登陸授權的Cookie信息就是PHPSESSID,我們只保存這一條Cookie即可。

(1)測試計划內包含的元件

添加元件操作步驟

  1. 創建測試計划。
  2. 創建線程組:選中“測試計划”右鍵 —> 添加 —> 線程(用戶) —> 線程組
  3. 在線程組中添加配置元件"HTTP信息頭管理器"組件:選中“線程組”右鍵 —> 添加 —> 配置元件 —> HTTP信息頭管理器
  4. 在線程組里面添加取樣器“HTTP請求”組件:選中“線程組”右鍵 —> 添加 —> 取樣器 —> HTTP請求
  5. 在線程組里面添加監聽器“察看結果樹”組件:查看結果,選中“線程組”右鍵 —> 添加 —> 監聽器 —> 察看結果樹

最終測試計划中的元件如下:

image

點擊運行按鈕,會提示你先保存該腳本,腳本保存完成后會直接自動運行該腳本。

(2)請求取樣器內容

如下圖所示:

image

兩個HTTP請求取樣器的內容是一樣的,只不過有Cookie的請求前加了HTTP信息頭管理器組件。

(3)HTTP信息頭管理器內容

我們在請求頭中添加上Cookie信息,如下圖所示:

image

當然我們可以用HTTP Cookie管理器組件來替換HTTP信息頭管理器組件。

如下圖所示:

image

兩種方式下效果是一樣的,我更喜歡使用HTTP信息頭管理器組件。

(4)查看結果

我們現在查看沒帶Cookie信息的請求結果,發現返回數據提示看不到購物車的內容。

如下圖所示:

image

我們再來看一下帶Cookie信息的請求結果,發現可以看到購物車中的信息,如下圖所示:

image

2、使用HTTP Cookie管理器組件來管理Cookie信息

實現步驟:

  1. 我們在JMeter中進行登陸操作。
  2. 通過HTTP Cookie管理器組件來記錄下登陸后的Cookie信息。
  3. 再調用查看購物車接口,自動使用HTTP Cookie管理器組件中記錄下來的Cookie信息。
  4. 最終實現查看該用戶的購物車數據。

提示:關於該網站登陸授權的Cookie信息就是PHPSESSID,我們只保存這一條Cookie即可。

(1)測試計划內包含的元件

添加元件操作步驟

  1. 創建測試計划。
  2. 創建線程組:選中“測試計划”右鍵 —> 添加 —> 線程(用戶) —> 線程組
  3. 在線程組中添加配置元件"HTTP Cookie管理器"組件:選中“線程組”右鍵 —> 添加 —> 配置元件 —> HTTP Cookie管理器
  4. 在線程組里面添加取樣器“HTTP請求”組件:選中“線程組”右鍵 —> 添加 —> 取樣器 —> HTTP請求。(如有多個請求,添加多次)
  5. 在線程組里面添加監聽器“察看結果樹”組件:查看結果,選中“線程組”右鍵 —> 添加 —> 監聽器 —> 察看結果樹

最終測試計划中的元件如下:

image

點擊運行按鈕,會提示你先保存該腳本,腳本保存完成后會直接自動運行該腳本。

(2)HTTP Cookie管理器內容

什么都不用填寫,保持原樣即可。

image

簡單說明一下:

  • JMeter中自動收集的Cookie,是不會在HTTP Cookie管理器中進行展示的,但是運行后通過查看結果樹可以查看到Cookie信息,接受到的Cookie會被自動存儲在線程變量中。(使用Debug Sampler組件)
  • HTTP Cookie管理器會自動記錄每一個請求所產生的Cookie,在后邊對同源站點進行的請求中,都可以使用對應的Cookie進行發送。

(3)HTTP請求組件的內容

1)登陸請求界面內容

填寫好請求地址和請求參數,如下圖所示:

image

2)查看購物車請求界面內容

查看購物車接口,沒有請求參數,我們使用Get請求就可以。其中的Cookie信息,會自動添加到請求頭信息中。

如果沒有添加HTTP Cookie管理器組件,則該請求的請求頭信息中不會帶有Cookie信息,會顯示[no cookies]

image

(4)查看結果

腳本運行結果如下圖所示:

image

我們可以看到,兩個請求都請求成功了。登陸請求中是沒有Cookie信息的,登陸之后服務端會返回Cookie信息給客戶端。而HTTP Cookie管理器組件保存了這些Cookie信息,並應用於之后的接口請求中,所以在查看購物車請求中,我們看到了Cookie數據。

3、查看HTTP Cookie管理器組件中自動存儲的Cookie信息

前面我們說過,JMeter中自動收集的Cookie信息,是不會在HTTP Cookie管理器中進行展示,接受到的Cookie信息會被自動存儲在線程變量中。

如果我們需要查看或引用這些Cookie信息怎么辦?

(1)修改JMeter.property文件

修改jmeter/bin/jmeter.properties文件,把CookieManager.save.cookies屬性打開,意思是保存Cookie數據到線程變量中。

操作如下:

CookieManager.save.cookies=true   # 取消注釋,false修改成true

(2)添加Debug Sampler取樣器

添加Debug Sampler組件:選中“線程組”右鍵 —> 添加 —> 取樣器 —> Debug Sampler

我們以上面練習為例,添加完Debug Sampler組件后,測試計划中的元件如下:

image

(3)查看Debug Sampler組件中的結果

運行測試計划,然后在察看結果樹中,查看Debug Sampler組件中的值。

如下圖所示:

image

紅框中的內容,就是登陸請求后,服務端返回給客戶端的Cookie信息。

之后我們可以使用${COOKIE_名稱}的方式,在其他的地方引用該Cookie信息。

JMeter.property文件中的CookieManager.name.prefix= 屬性,能夠用來修改默認的變量名COOKIE_的開頭。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM