Jmeter系列(49)- 詳解 HTTP Cookie 管理器
阿新 • • 發佈:2020-08-19
如果你想從頭學習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管理器