jmeter實現冪等測試的一種方法(案例)


最近在研究怎樣對電商系統的業務進行冪等測試,利用jmeter對單獨業務開展冪等測試可能簡便、直接有效吧

 

場景描述:買家每一筆訂單選中商品后,系統會生成一個“ShopCartIds”,而訂單時基於“ShopCartIds”進行創建,且具有唯一性

  那么,同一個“ShopCartIds”理論上只能創建一個訂單,如果去創建多個訂單應該會出發冪等性保護。

 

思路:“ShopCart/SavePurchaseCart”接口獲取“ShopCartIds”,模擬5個用戶使用同一個“ShopCartIds”同求請求“Order/CreateOrderByShopCart”接口

  檢查創建訂單情況

 

jmeter步驟:

第一步,創建setup線程組,把“ShopCart/SavePurchaseCart”請求規划到這個線程組內(因為如果把兩個接口列入同一個線程組,所有的請求都會循環執行多次)

 

 

第二步,創建“返回ShopCartIds”http請求,通過“ShopCart/SavePurchaseCart”獲取“ShopCartIds”

 

 

第三步,對“ShopCart/SavePurchaseCart”響應數據進行提取,獲取“ShopCartIds”,這里使用正則表達式提取器,怎么使用正則表達式參考:https://www.cnblogs.com/becks/p/14951525.html

 

第四步,把提取到的結果設置為全局變量,跨線程組需要這一方式進行變量傳遞。怎樣使用跨線程組傳參可參考:https://www.cnblogs.com/becks/p/12592808.html

 

 

 第五步,再建一個線程組,且把設置好線程組(線程數可以理解為用戶數)

 

 

第六步,創建下訂單接口,也就時“Order/CreateOrderByShopCart”接口的http請求,划紅線即上一個線程組傳參過來的“ShopCartIds”

 

 

第七步,設置同步定時器,可以理解為lr里面的集合點,即所有用戶在這個接口進行同時操作

 

 

第八步,設置好各類結果查看和監控后,執行腳本。可以看到結果樹里獲取“ShopCartIds”僅返回一個結果,而下訂單返回了5個結果

 

我們依次展開所有的“下訂單”結果返回,檢查請求時間和返回結果

 

 所有的“Sample Start”請求時間均相同,展開響應數據,只有第一個返回成功,且創建訂單號,其他返回下架

 

 

然后再檢查系統訂單列表,列表只生成一個訂單

 

 

理論上,上方案例可實現提交訂單冪等性相關測試,但5個用戶的數據可能偏少,服務器對5個用戶的處理還是沒有壓力,往往問題都出現再大數據的並發上

但是總體思路方向,應該問題不大,接下來的冪等測試皆以此為參考展開

 


免責聲明!

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



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