jmeter性能測試案例:電商系統並發訂單測試


場景描述:本案例主要實現多用戶同時提交訂單,以檢測系統對瞬時壓力的響應情況。具體流程包括用戶登錄-添加商品-提交訂單。涉及多個接口聯動和參數處理,步驟如下:

第一步,登錄用戶

  1、新建“下訂單”線程組(測試計划-線程-線程組),線程數可設置並發數,比如圖中30代表30個用戶並發執行,ramp-up代表加載30個用戶使用時間

  

 

  2、添加cookie管理器(選中線程組-添加-配置元件-httpcookie管理器)

 

 

 

   3、創建用戶登錄(選中線程組-添加-取樣器-http請求),下圖箭頭注明了http請求方式,路徑里填寫request url,基本內填寫請求的參數。參數內telphone即用戶登錄信息,這里采取直接讀取csv文件獲取用戶賬號

 

 

  讀取csv文件的方法(選中登錄用戶--添加-配置元件-CSV 數據文件設置)設置好變量名和文件路徑,CSV文件內容右圖。然后在請求即“用戶登錄”telphone參數內填入變量值“${user}”即可

      

 

  4、登錄成功后,需要返回用戶鑒權信息給后面的請求使用,分析登陸后的返回值,找到鑒權信息,把這部分內容提取后做成變量

 

   提取並設置成變量的方法(選中登錄用戶--添加-后置處理器-正則表達式處理器),根據上圖可知,token的內容在jwttoken和logiflag之間,如此,正則表達式可寫成"JwtToken":"(.+?)","LoginFlag"

如此,鑒權信息變量化,變量名稱“JwtToken”

 

 

 

 步驟二:獲取商品信息

 

 

   1、創建http請求,獲取商品列表,且取第一個商品的信息

 

 

  2、根據“1”返回結果,把價格和商品id提取出來設置成變量,這里需要注意對請求頭的處理,請求頭需要帶入“登錄步驟”獲取的鑒權信息,即前文的JwtToken,否則獲取列表數據非用戶登錄后數據,導致后面無效

 

 

  頭信息處理(選中分頁獲取商品列表 --添加-配置元件-HTTP信息頭管理器),信息頭包括文本類型,host和鑒權信息

 

   

   3、保存直接下單數據到購物車請求,提取“CartInfo”值,這個值是提交訂單接口必備的參數之一,后面幾個接口都是如此,中間的參數設置已經返回值提取和變量化不再累贅

 

  4、提取“addId”,客戶收地地址信息

 

 

  5、獲取(計算)運費,提取運費

 

 

步驟3:訂單請求,步驟2內容基本是給步驟3提交訂單准備數據,可以看到,這個請求的參數里有好幾個變量,實際就是步驟2里的請求提取的數據

 

 

 以上,一個完整的用戶-獲取商品數據-提交訂單流程完成了

 

步驟4:設置並發環境,比如我們需要30個用戶同時提交訂單

  1、線程組設置30

 

  2、為了實現30個用戶同時提交訂單,選中創建訂單步驟,設置數量與線程數一致(添加-定時器-Synchronizing Timer)

 

 

 

 

 

 

 

    3、在最后面加上察看結果樹、聚合報告、用表格察看結果等結果顯示(線程組-添加-監聽器),如此,整個jmeter腳本環境就算配置完成

 

 

步驟5:執行,點上面綠色的按鈕開始執行

  

 

 

步驟6:查看結果

  1、察看結果樹的結果

 

 

  2、聚合報告的結果

 

 

  3、用表格察看結果的結果,這個報告可以看出下訂單接口所有的用戶的請求時間,所有用戶的請求時間基本誤差在1秒內,如果用戶數越大,差異應該越大,這個跟負載機的性能應該有關系

 

 

 

 

 完成!


免責聲明!

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



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