jmeter跨線程組session保持


@@@@@@@@@@@@@@@

是金子早晚會被挖光的   

  http請求由於無狀態的特性,所以在請求時需要帶上身份信息,關於session和cookie的驗證機制會在其他筆記中再記錄,這里不討論。

心路歷程

  在實際過程中,我往往把一個業務模塊放在一個線程組,登錄就獨立在一個線程組了,那其他線程組如果想擁有cookie,就需要每個線程組都寫一個登錄請求。單個接口不會有太大影響,但是當線程組多了以后,這么做首先不方便腳本管理,其次如果有性能需求,也沒辦法測試。我如果可以讓其他線程組共享登錄線程組的cookie,那就方便多了,於是就學習了以下方法

 思路

  在登錄線程組中提取出登錄后的cookie值,聲明一個全局變量,將取到的cookie值放入全局變量中,這樣在其他線程組需要用到的cookie的時候調用這個變量的值,如此就實現了cookie值在多個線程組之間的傳遞

步驟

兩個易錯:1 正則表達式一定要寫正確,注意空格之類的。2記得勾選測試計划的獨立運行每個線程組。

  1 在登錄請求中添加后置處理器:正則表達式提取器 

  

 

 

  2 正則表達式提取cookie值。ps(如果此步有疑問請閱讀隨筆 jmeter之正則表達式提取器使用)

  

  3 聲明一個全局變量,變量的值為提取到的cookie值(此步驟有疑問的請閱讀 jmeter之變量的使用)

  

 

 

  4 在其他要用到cookie的線程組中添加“HTTP信息頭管理器”

  5設置cookie的值為步驟3設置的變量值

最后執行線程組,就發現其他模塊線程組的請求也可以用到登錄接口返回的cookie值了。

 注意如果小伙伴運行后發現不對,需要去測試計划中勾選獨立運行每個線程組就可以了

 

 

總結

  用多線程共享cookie(session保持)的方式是一門測試必備技能,如果只是隨便測一下就算了,如果要系統性的展開自動化和性能測試,那么session保持會是一個很重要的概念,不管是從代碼管理角度,還是從性能分析角度。其核心技術點就是正則表達式的提取以及全局變量的傳遞。仔細分析流程,理解cookie的值在執行過程中的詳細調用過程,才可以更輕松更透徹理解自動化測試。

--  以上內容均為筆者原創,轉載請注明出處,如有不當歡迎指正


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM