jmeter跨線程組獲取cookie或jmeter線程組共享cookie-筆者親測
- 2020 年 6 月 29 日
- 筆記
- API接口自動化測試
一、Jmeter版本
此次示例採用的是apache-jmeter-5.2.1版本
二、設置配置文件使Cookie管理器保存cookie信息。
修改apache-jmeter-5.2.1/bin/jmeter.properties文件,把CookieManager.save.cookies設置為true,並去掉前面的注釋#號,如下圖所示:
修改完成後保存,退出,並重啟jmeter。
三、在調試取樣器和請求中查看具體的cookie信息
在線程組中添加HTTP Cookie 管理器,運行測試計劃後,HTTP Cookie 管理器會自動存儲這些cookie,變量名稱為COOKIE_XXX,XXX對應的是cookie的名稱,可以添加【調試取樣器】來查看自動存儲的cookie值,如下圖所示:
下圖中有兩個cookie值分別為:COOKIE_z92_lastvisit何COOKIE_z92_visitor
這裡要注意一下,有時候你會發現這裡的cookie不全,所以比較保險的做法下,進入第一個請求中查看request body中的cookie值。如下圖所示:下圖中有三個cookie值分別為:z92_visitor和z92_lastvisit以及csrf_token三個值。這裡比前者多了一個cookie值。
四、設置cookie為全局變量
在BeanShell後置處理程序中使用__setProperty()函數將COOKIE_XXXX設置為全局變量。如下圖所示:
五、獲取並存儲Cookie
在HTTP Cookie管理器中通過__P()函數獲取全局變量Cookie,並加入到Cookie管理器中。注意名稱和在請求中的cookie名稱保持一致。如下圖的z92_visitor和z92_lastvisit以及csrf_token三個值。
六、調用登錄接口測試驗證cookie是否可以跨線程共享
(1) 同一個線程中調用登錄接口:
結果如下:提示state為success,表示登錄成功!
(2) 不同的線程中調用登錄接口
結果如下:提示state為success,表示登錄成功!
OK大功告成,線程1和線程2實現cookie共享成功!
七、總結
如果你對此文有任何疑問,如果你也需要接口項目實戰,如果你對軟件測試、接口測試、自動化測試、面試經驗交流感興趣歡迎加入:軟件測試技術群:695458161,群里的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。
作者:公眾號:軟測之家
原創不易,歡迎轉載,但未經作者同意請保留此段聲明,並在文章頁面明顯位置給出原文鏈接。