使用jmeter進行審批類接口並發測試


背景:

頁面上單據審核操作,單據並發操作時會多筆成功提交,出現提交多個支付申請的問題

難點:

  • 數據自動創建
  • 接口請求需要登錄后執行
  • 動態獲取審核單據的請求參數
  • 最大限度模擬並發操作,降低請求間隔

解決思路:

  • 使用數據拋送接口創建數據
  • 使用jmeter頭和cookie管理器,保存登錄session
  • 通過查詢類接口,獲取審核請求所需參數
  • 線程組添加同步定時器,確保請求的同時性

具體實現:

  1. 使用數據拋送接口,來進行數據的創建,有以下注意點
  • 隨機生成項目單據號,確保數據可創建成功
  • 保存創建數據的項目單據號,方便之后查詢接口使用

  2. 在實現登錄和提交操作時,進行了兩種場景模擬

場景a:

使用單用戶登錄,模擬同一用戶多瀏覽器登錄進行並發提交。起初將登錄和提交請求放到同一線程組中,但是發現在短時間內使用同一用戶進行單點登錄時,會有部分登錄報錯,故將登錄請求單獨放置在一個線程組中,提交請求放在另一線程組,之后將登錄線程組中cookie傳輸到請求線程組中(此種方式其實是模擬單用戶在同一瀏覽器多開並發)。

由於登錄和發送請求設置不同線程組,需要在線程組間傳遞cookie,具體為需要修改jmeter.properties文件,設置CookieManager.save.cookies=true,取出登錄后cookie參數,並傳遞到執行審核請求的線程組

整體結構:

 

 

聲明參數為全局變量:

 

 

拼接cookie信息:

 

 

設置同步計時器,確保單據並發提交:

 

 

場景b:

在真實場景中,單用戶並發操作的較少,同時操作同一單據的場景,更多的是多個不同用戶。模擬此種場景,要做到的是多線程時,每個線程使用不同的用戶登錄並進行操作。此處的實現方式,是獲取線程編號,然后為線程指定登錄賬號(如線程1讀取賬號1,線程2讀取賬號2),在這種不同用戶的場景下,就需要將登錄和提交請求放置在同一線程組中,順序執行操作即可

       整體結構:

    

 

       獲取線程ID並指定賬號:

      

 


免責聲明!

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



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