場景:用戶登陸后會本地會保存cookie,cookie是用來跟服務端驗證此用戶已經登陸過的重要信息,但是如何獲取並在其他請求時將此cookie傳遞給服務器呢?
在線程組下面之直接添加HTTP Cookie管理器,Jmeter會自動將線程組下面的cookie值保存並在此線程組中其他API中傳遞的,首先,要確保jmeter.properties中CookieManager.save.cookies=true

image.png
那么,跨線程間怎么傳遞cookie?
獲取參數值->設置為全局變量->調用參數,下面詳細介紹一下操作步驟
-
通過抓包工具(Fiddler,Charles,network)等可知道cookie是在響應Header或者響應文本中返回可客戶端的
響應信息
- 添加正則表達式獲取cookie值,需要檢查的響應字段需要選擇【信息頭】
Set-Cookie: PHPSESSID=(.*); path=/; HttpOnly

正則式提取器
- 添加BeanShell PostProcessor,並將正則表達式提取器中的值設置為全局變量
${__setProperty(newPHPSESSID,${PHPSESSID},)};

BeanShell PostProcessor
- 在其他需要調用的線程下添加HTTP Cookie管理器,並取出環境變量值
${__property(newPHPSESSID,,)}

HTTP Cookie管理器
-
最后運行線程組就ok了,接口A請求頭中有cookie信息了
結果樹
參考文檔:
Jmeter如何保持cookie,讓所有請求都能用同一個cookie,免去提取JSESSIONID
Jmeter獲取Cookie並傳遞到下一個線程---跨線程后cookie找不到了
jmeter手動添加cookie及線程間cookie共享的2種方法