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個用戶的處理還是沒有壓力,往往問題都出現再大數據的併發上

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章