Jmeter系列(49)- 詳解 HTTP Cookie 管理器
- 2020 年 8 月 19 日
- 筆記
- Jmeter, 測試高級進階技能系列 - Jmeter
如果你想從頭學習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管理器