1. 程式人生 > 實用技巧 >Jmeter系列(49)- 詳解 HTTP Cookie 管理器

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

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

https://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管理器