jmeter跨線程組獲取cookie或jmeter線程組共享cookie-筆者親測

一、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,群里的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。

作者:公眾號:軟測之家
原創不易,歡迎轉載,但未經作者同意請保留此段聲明,並在文章頁面明顯位置給出原文鏈接。