面試被問到:fiddler 在工作中有哪些應用?怎么破?


作為軟件測試工程師,如果你的簡歷中有涉及到 fiddler 這款工具,出去面試可能會被問到:fiddler 在工作中有哪些應用?

我們都知道 fiddler 是一款非常優秀的調試代理工具,用於記錄客戶端和服務端之間的所有的通信數據。軟件測試工作中,主要可以幫助我們來完成以下事情:

  1. 定位前后端 bug
  2. 篡改數據
  3. 弱網模擬測試
  4. 獲取前端性能數據

1、定位前后端 bug

當我們操作頁面端發現一個 bug 時,對業務充分熟悉且有足夠經驗的測試工程師可以直接判斷是否前后端 bug;但無經驗的不要慌,可通過 fiddler 抓取 request、response 數據,分析定位前后端 bug。

Fiddler 怎么配置以及怎么抓取數據,本文章省略,可自行百度解決。

圖片.png

a、查看請求的 http 狀態碼是否正確。例:若抓取到的請求返回的 http 狀態碼為 404,說明可能是前端 JS 提交了錯誤的地址,也可能是后端服務器沒有對應地址的服務;若抓取到的請求返回的 http 狀態碼為 500,說明是后端服務器內部錯誤。

b、查看請求的 http 狀態碼 200 但界面提示報錯,則具體分析 request 及 response 信息,確認是否前端請求傳參錯誤,若前端對應請求地址及傳參都正確,則確認后端問題。

 

2、篡改數據

2.1 斷點篡改請求數據

    當我們在測試的時候,僅僅通過頁面來發起請求進行測試,會因為前端的一些輸入限制,導致測試不能覆蓋所有場景。比如微信發送紅包金額前端限制 0.01-200 元,那我們測試的時候,通過抓包,需要修改請求紅包金額超過 200,驗證服務器端是否正常處理超出數據。

     還比如我們很多項目都會涉及到支付功能,假設購買 1 件商品,在提交訂單后、跳轉到支付窗口之前,通過抓包能抓取到支付金額及數量的請求信息,並去篡改了支付金額或數量,然后以超低價格購買到多數量的高額商品。那就是嚴重 bug 了!

    以上這些可以通過 fiddler 打斷點,來修改請求數據。

  1. 設置 Rules—>Automatic Breakpoints—>Before Requests
  2. 然后在界面點擊提交訂單,看到請求前有紅色禁行標識,說明設置了斷點,請求被攔截了;
  3. 點擊該請求,在右側 WebForms 視圖下會看到請求發送的具體內容,修改金額后,再點擊 Run to Completion 按鈕。這樣就完成了數據的篡改。

圖片.png

那么在涉及到支付等重要場景時可利用這種方法來完成服務器安全性校驗。一般我們可以要求開發在數據包中不要加入價格等敏感數據。

 

2.2 斷點篡改響應數據

如果系統調用到第三方接口,根據第三方接口的不同返回結果進行不同的邏輯處理,當提供方不能配合我們來測試時;或者我們要從數據庫獲取不同的數據在前端做展示;就都可以利用 fiddler 來篡改接口返回的數據,模擬我們需要的測試場景。

  1. 設置 Rules—>Automatic Breakpoints—>After Responses
  2. 頁面發起請求,看見對應的請求圖標有紅色禁行標識,表示響應過程已設置斷點
  3. 修改響應數據,點擊 Run to Completion 按鈕。例如圖示,修改省份選擇框的省份過長,查看前端展示。圖片.png

斷點設置除了以上這種方法外,補充另外 2 種斷點設置方式:

1)輸入命令進行斷點

圖片.png

  • bpu :bpurl 的縮寫。在命令輸入框內輸入:bpu 請求的 URL然后回車 , 則符合 url 條件的請求就會被中斷。
  • bpm : 相當於 bpmethod。在命令輸入框輸入:bpm 請求方法然后回車,則符合請求方法的請求就會被中斷 。
  • bps : bpstatus 的縮寫。在命令輸入框輸入:bps 響應狀態碼然后回車,則符合狀態碼條件的請求就會被中斷 。
  • bpafter :中斷修改響應數據 。在命令輸入框輸入:bpafter url然后回車,符合條件的 url 就會被中斷。

2)點擊左下角的一個小區域設置斷點 。點一下是設置請求的斷點,點兩下是設置響應的斷點。

圖片.png

 

 

2.3 通過AutoResponder修改響應

這是另外一種斷點之外的修改響應數據的方式。在本地文件中配置你想要的的返回結果,請求特定接口時返回你自己配置的資源。例如下面網頁請求的 logo 圖片,篡改返回的這個 logo 文件為本地指定的一個文件。

圖片.png

步驟如下:

圖片.png

重新再請求頁面,logo 已顯示指定到的文件。

圖片.png

 

3、弱網模擬測試

3.1、Fiddler 中 Rules—>Cutomize Rules 打開 CustomRules.js 文檔,搜索關鍵字 m_SimulateModem,找到如下文檔位置

圖片.png

  • oSession[“request-trickle-delay”] = “300”; 看注釋:上傳 1KB 需要 300ms;轉化上傳速度:1Kb/0.3s = 3.3(KB/s)。oSession[“response-trickle-delay”]同理。
  • 弱網場景例如 2G 網絡,2G 上行/下行速率約為 2.7、9.6kbps。每 1KB 數據,uploaded 約 2962 ms,downloaded 約 833 ms。則按如下設置並保存,模擬 2G 弱網情況。圖片.png
  • 3.2、Rules->Performance-> 點擊 Simulate Modem Speeds,開啟弱網模擬。對比弱網設置前后,查看統計數據,可以看到弱網設置后,訪問網站慢了很多。
  • 圖片.png

圖片.png

另:若想取消弱網設置,選中 Rules->Performance-> 點擊 Simulate Modem Speeds,取消勾選即可。

 

4、獲取前端性能數據

4.1、批量選擇第一個請求和最后一個請求,使用 Statistics 頁簽,可獲得整個頁面加載所消耗的總體時間。從餅狀圖中可以清楚哪些請求耗時最多。圖片.png

4.2、通過 Timeline 分析資源加載時序圖,可以看到頁面上各個資源加載過程所需要的時間和先后順序,有利於找出加載過程中比較耗時的文件資源。

圖片.png

以上可以幫助我們清楚耗時比較長的請求及文件資源,過長的可以提交給前端開發,針對性地進行性能優化。

 


免責聲明!

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



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