Jmeter系列(49)- 詳解 HTTP Cookie 管理器

如果你想從頭學習Jmeter,可以看看這個系列的文章哦

//www.cnblogs.com/poloyy/category/1746599.html

 

簡單介紹

功能一

  • 首先,它像網路瀏覽器一樣存儲和發送 cookie
  • 如果有一個HTTP請求,並且響應包含 cookie,則 cookie 管理器會自動存儲該 cookie,並將其用於後面對該特定網站的所有請求
  • cookie 管理自動存儲的 cookie 不會出現在 Cookie Manager 的介面上,但是可以使用通過查看結果樹看到它

 

功能二

  • JMeter 會檢查收到的 Cookie 是否對該URL有效,這意味著不會存儲跨域 Cookie
  • 如果有錯誤的行為或希望使用跨域cookie,請定義 JMeter 屬性 
CookieManager.check.cookies = false

 

功能三

  • 收到的 Cookies 可以自動存儲為 JMeter 執行緒變數
  • 要將 cookie 保存為變數,請定義 JMeter屬性
CookieManager.save.cookies = true
  • Cookie 自動存儲為 Jmeter 執行緒變數的名稱前綴默認是 COOKIE_ 
  • 如果要自定義前綴可以修改 Jmeter 屬性 CookieManager.name.prefix = **** 

 

功能四

  • 可以將 Cookie 手動添加到 Cookie Manager
  • 自定義 Cookie 將被所有 JMeter 執行緒共享
  • 自定義 Cookie 的過期時間會很長

 

功能五

  • 默認情況下,空值的 Cookies 被忽略
  • 可以通過設置 JMeter 屬性來更改此設置 CookieManager.delete_null_cookies = false 

 

HTTP Cookie Manager

 

HTTP Cookie Manager 介面介紹

欄位介紹

 

單次循環實際栗子

項目背景

  • 一個登錄介面,一個添加課程介面
  • 登錄介面響應會返回一個Set-cookie,包含一個 sessionid,相當於用戶憑證
  • 發送添加課程介面需要傳遞包含 sessionid 的 Cookie 才能請求成功

 

Jmeter 屬性設置(jmeter.properties 文件)

 

執行緒組結構樹

整體邏輯:登錄請求成功響應後,HTTP  Cookie 管理器會自動存儲登錄介面返回的 Cookie,後面的請求也能自動調用該 Cookie

 

執行緒組屬性

 

HTTP Cookie 管理器

沒有自定義的 Cookie

 

登錄請求的響應內容

響應返回 Cookie

 

添加課程請求的響應內容

 

調試取樣器,查看是否有自動將 Cookie 保存為 Jmeter 變數

 

有循環次數的實際栗子

執行緒組結構樹

登錄請求只會發送一次

 

執行緒組屬性

循環 2 次

 

HTTP Cookie 管理器

勾選了【每次反覆清除 Cookies】

 

查看結果樹

第一個增加課程請求能成功發送並響應

 

第二個增加課程請求的響應內容

第二個增加課程請求會返回未登錄狀態

 

重點

如果勾選了【每次反覆清除 Cookies】,那麼每次循環之後都會清除 Cookie 管理器自動存儲的 Cookie

 

注意事項

  • 如果一個取樣器(Sampler)同級下有多個 Cookie 管理器,則無法指定當前要使用哪個 Cookie 管理器
  • 另外,存儲在一個 Cookie 管理器中的 Cookie 對其他任何管理器均不可用,因此請謹慎使用多個cookie管理器