- 性能測試過程中經常有需要對案例進行大并發壓測,但是隻需要登入一次即可,jmeter自帶了僅一次控制器,但此控制器隻是針對單線程才有意義,多線程下,設定多少線程數還是會執行多少次
- 1000并發使用者下,系統還是會執行1000次登入,有10次登入失敗,就會影響實際壓測案例的結果,本文就介紹如何使用全局變量實作真正意義上的隻執行一次登入
一、請求分析
- 本次需要對系統的一個查詢操作做性能測試,首先使用谷歌浏覽器登入系統,按F12進入調試頁面,然後通路查詢頁面,下圖為查詢接口位址
- 下圖為該接口的資訊頭,由圖可知,需要先登入擷取Cookie,并且在查詢請求資訊頭申明該Cookie即可實作查詢操作二、腳本開發
- 本次需要先開發好登入腳本,由下圖可知,MODAUTHCAS變量會在登入1請求中的子請求(重定向)傳回
- 隻需要在該請求下添加一個正規表達式提取器即可,如下圖所示
- MODAUTHCAS變量提取成功,我們隻需要在該請求後面使用beanshell申明該變量為全局變量即可,這樣其它線程也能調用該變量
- 在查詢線程組下,申明資訊頭,并且定義cookie字段,值使用MODAUTHCAS=${__P(Th_MOD_AUTH_CAS,)}進行調用,如下圖所示
三、多線程驗證
- 首先設定線程組為2線程2循環,看是否能正常執行
- 設定測試計劃,測試計劃勾選獨立運作每個線程組,并且把登入線程組放置在最前面,這樣系統就會先執行登入,在執行其它線程組
- 執行腳本,如下圖所示,系統隻登入了一次,正常進行了4次查詢,4次查詢是2線程執行了2次循環
- 本文介紹了登入使用Cookie鑒權如何實作一次登入,多并發下執行壓測,如果系統調用了token,規則一樣,隻需要把token全局化即可實作
*** 如果文章對你有幫助,歡迎關注本人公衆号,公衆号與本平台文章同步,友善大家查閱,本人會持續推出與測試有關的文章,與大家分享測試技術,每一篇原創文章都是用心編寫,杜絕抄襲複制***
QQ技術交流群:加群請輸入驗證資訊
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SMzIjYkFTN5MTM1M2M2IDN1IWMjZGO4MGZkNmZ1ATYh9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
***微信二維碼關注公衆号:
***關注之後,回複資源下載下傳,即可擷取本人共享的各種資源下載下傳位址
本文由部落格一文多發平台 https://openwrite.cn?from=article_bottom 釋出!