《如何進行接口mock測試》


前言:

Mock通常是指:在測試一個對象時,我們構造一些假的對象來模擬與其交互。而這些Mock對象的行為是我們事先設定且符合預期。通過這些Mock對象來測試對象在正常邏輯,異常邏輯或壓力情況下工作是否正常。

那么哪些測試場景需要進行mock呢?

       1)上游接口不方便更改,下游無法聯調,此刻需要mock上游數據來完成本次的預期結果

  2)依賴的上游的接口尚未開發完成

  3)接口返回的結果不滿足目前的測試需求。雖然接口已經實現,但是個別字段/返回不滿足測試要求;

常用的代理工具攔截請求:Charles、 Fiddler【本文以Fillder工具示例】

mock數據分為兩種情況:

    1:mock請求的數據已至返回數據變更為預期結果

    2:mock返回的數據已至返回至界面顯示效果

1:修改請求數據

1)右鍵選中請求》replay》Ruissue and Edit 》修改參數》run to  completion

  • rules ->Automatic BreakPoints -> Before request :攔截客戶端發送到服務器的請求,修改header的內容

 

 

 

2:修改返回數據After response(攔截服務器響應數據,修改后再返回客戶端)

1)打開URL訪問

2)找到相對應的接口,設置斷點攔截請求(After response)

3)點擊攔截接口》修改壓縮為none,修改數據》設置為壓縮GIZP

4)拖動接口至規則》取消攔截放行

5)繼續運行,修改返回數據成功

延遲接口修改

1、 獲取需要延遲的接口

2、配置延遲規則 AutoResponseder

延遲規則配置:*delay:2000   延遲2S

 

 3、然后開啟是請求延遲還是響應延遲

 

 

 模擬弱網環境

Bandwidth(帶寬) Utilistation(利用百分比) Round-trip(往返延遲)  MTU(最大傳輸單元)

3G:300k-2Mbps左右

2.5G(GPRS)一般在100kbps

2G(GSM)一般在5-9kbps

 PS:弱網、2G、3G建議的上下行速率如下,同時還可以控制丟包率的數據

         網絡                    上行                        下行
         弱網                      10                         30
         2G                         15                         50
         3G                        384                      2800
 

 打開Fiddler,Rules->Performance->勾選 Simulate Modem Speeds,勾選之后訪問網站會發現網絡慢了很多

 

 Fiddler弱網的原理

Rules—>Cutomize Rules打開CustomRules.js 文檔,設置網絡參數

    if (m_SimulateModem) {
            // Delay sends by 300ms per KB uploaded.
            oSession["request-trickle-delay"] = "0.3"; 
            // Delay receives by 150ms per KB downloaded.
            oSession["response-trickle-delay"] = "0.15"; 
        }oSession["request-trickle-delay"] = "0.3";
  • Delay sends by 300ms per KB uploaded:上傳1KB內容需要300ms,轉化一下上傳速度:1Kb/0.3s = 3.3KB/s,網絡上行速度為3.3KB
  • Delay receives by 150ms per KB downloaded:下載1KB內容需要150ms,轉化后的下載速度:1KB/0.15s=6.6KB/s,網絡下載速度為6.6KB,若下載速度為50KB/s 則延遲時間應為20ms(1kb/50kb)
  • 同時選擇接口開始和結束請求,查看響應時間
參考資料

 https://www.cnblogs.com/fighter007/p/13999543.html

 https://www.doc88.com/p-3015598697603.html

 

 

 

 

 

 


免責聲明!

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



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