
1. Fiddler在軟件測試中的核心價值解析Fiddler作為HTTP調(diào)試代理工具在軟件測試領域已經(jīng)持續(xù)流行十余年。它本質(zhì)上是一個位于客戶端和服務器之間的中間人代理能夠攔截、記錄和分析所有HTTP/HTTPS流量。對于測試工程師而言掌握Fiddler相當于獲得了透視網(wǎng)絡交互的X光眼——不僅能查看常規(guī)請求響應還能模擬各種異常場景。在實際測試工作中我主要用Fiddler完成以下關(guān)鍵任務接口測試實時監(jiān)控API請求參數(shù)和返回數(shù)據(jù)驗證接口是否符合設計規(guī)范性能分析統(tǒng)計請求響應時間定位慢速接口安全測試檢查敏感信息是否明文傳輸弱網(wǎng)模擬測試應用在不同網(wǎng)絡條件下的表現(xiàn)數(shù)據(jù)篡改修改請求/響應數(shù)據(jù)驗證系統(tǒng)容錯性提示Fiddler Classic經(jīng)典版和Fiddler Everywhere新版功能略有差異企業(yè)環(huán)境中建議優(yōu)先掌握Classic版本因其自定義能力更強且插件生態(tài)豐富。2. 高頻面試題深度剖析2.1 基礎原理類問題Q1Fiddler工作原理是什么Fiddler通過在本地建立代理服務器默認127.0.0.1:8888實現(xiàn)流量攔截。當配置系統(tǒng)/瀏覽器使用該代理后所有HTTP/HTTPS請求會先經(jīng)過Fiddler再轉(zhuǎn)發(fā)到目標服務器。這個過程涉及三個關(guān)鍵步驟代理協(xié)商客戶端與Fiddler建立TCP連接HTTPS解密安裝Fiddler根證書后可解密HTTPS流量中間人攻擊原理流量轉(zhuǎn)發(fā)Fiddler根據(jù)請求頭信息將流量路由到目標服務器Q2如何用Fiddler抓取手機APP的包這是實際測試中最常遇到的場景具體操作流程確保手機和PC在同一局域網(wǎng)在Fiddler中開啟Allow remote computers to connectTools Options Connections手機WiFi設置手動代理地址為PC的IP端口8888手機瀏覽器訪問http://PC_IP:8888下載安裝Fiddler根證書對于Android 7系統(tǒng)還需將證書移動到系統(tǒng)證書目錄需要root常見坑點iOS設備安裝證書后需手動開啟信任設置-通用-關(guān)于本機-證書信任設置否則無法解密HTTPS流量。2.2 實戰(zhàn)應用類問題Q3如何進行弱網(wǎng)測試Fiddler的弱網(wǎng)模擬功能基于網(wǎng)絡節(jié)流Network Throttling實現(xiàn)Rules Performance Simulate Modem Speeds 開啟基礎模擬自定義腳本Custom Rules可精確控制// 在OnBeforeRequest函數(shù)中添加 oSession[request-trickle-delay] 300; // 每KB上傳延遲300ms oSession[response-trickle-delay] 150; // 每KB下載延遲150ms典型參數(shù)參考4G網(wǎng)絡上行1Mbps下行5Mbps3G網(wǎng)絡上行384Kbps下行1.4Mbps2G網(wǎng)絡上行20Kbps下行50KbpsQ4如何修改請求/響應數(shù)據(jù)兩種主流方式斷點調(diào)試Breakpoints在Fiddler界面點擊Rules Automatic Breakpoints Before Requests觸發(fā)請求后會暫停可修改請求頭/體點擊綠色按鈕繼續(xù)發(fā)送AutoResponder自動響應將抓到的請求拖到AutoResponder標簽設置規(guī)則和本地文件/自定義響應勾選Enable rules和Unmatched requests passthrough2.3 高級調(diào)試類問題Q5如何分析HTTPS流量HTTPS解密流程需要特別注意安裝Fiddler根證書Tools Options HTTPS勾選Decrypt HTTPS traffic對于可能出現(xiàn)的證書錯誤瀏覽器臨時關(guān)閉HSTS保護應用程序可能需要禁用證書固定Certificate Pinning使用Filters標簽過濾特定域名流量Q6如何統(tǒng)計接口響應時間Fiddler提供多種性能分析方式時間線視圖Timeline直觀顯示各請求耗時統(tǒng)計標簽Statistics展示關(guān)鍵指標總耗時Overall Elapsed服務端處理時間Sever-side Processing網(wǎng)絡傳輸時間Network導出HAR文件后用第三方工具分析3. 實戰(zhàn)技巧與避坑指南3.1 證書管理最佳實踐證書問題是Fiddler使用中最常見的故障點建議定期更新根證書有效期默認1年對于Android設備使用adb push命令安裝證書更可靠adb push FiddlerRoot.cer /sdcard/ adb shell mv /sdcard/FiddlerRoot.cer /system/etc/security/cacerts/ adb shell chmod 644 /system/etc/security/cacerts/FiddlerRoot.ceriOS設備測試完成后務必刪除證書避免安全風險3.2 性能測試精準控制除了基礎弱網(wǎng)模擬還可通過腳本實現(xiàn)高級場景// 隨機丟包模擬 if(Math.random() 0.9) { oSession[ui-color] red; oSession.oRequest.FailSession(504, Random Drop, Packet loss simulation); }3.3 安全測試注意事項測試環(huán)境嚴格隔離禁止在生產(chǎn)環(huán)境使用Fiddler敏感數(shù)據(jù)如密碼、token建議在Filters中設置自動標記if(oSession.url.indexOf(password)0){ oSession[ui-color] purple; oSession[ui-bold] true; }測試完成后及時關(guān)閉代理避免流量持續(xù)泄露4. 典型問題排查手冊4.1 抓不到包的可能原因現(xiàn)象排查步驟解決方案無任何請求顯示1. 檢查代理設置2. 確認Fiddler監(jiān)聽端口3. 查看防火墻設置1. 重置IE代理設置2. 重啟Fiddler3. 添加防火墻例外HTTPS請求顯示Tunnel to1. 檢查HTTPS解密配置2. 驗證證書安裝1. 重新安裝證書2. 關(guān)閉殺毒軟件臨時手機無法連接1. 測試Ping通PC2. 檢查代理配置3. 驗證證書1. 關(guān)閉PC防火墻臨時2. 使用數(shù)據(jù)線ADB調(diào)試模式4.2 性能分析常見誤區(qū)時間統(tǒng)計誤差Fiddler自身處理會增加約5-10ms延遲精確測試應直接對比服務端日志帶寬計算錯誤1Mbps 128KB/s設置延遲時需換算單位并發(fā)限制默認Fiddler只能處理200個并發(fā)連接大規(guī)模測試需調(diào)整MaxConnections注冊表值4.3 企業(yè)級應用技巧對于復雜測試場景可以使用FiddlerScript編寫自動化腳本// 自動重定向到測試環(huán)境 if(oSession.HostnameIs(prod.example.com)){ oSession.hostname test.example.com; }結(jié)合Python實現(xiàn)自動化測試import requests proxies {http: http://127.0.0.1:8888, https: http://127.0.0.1:8888} requests.get(https://example.com, proxiesproxies, verifyFiddlerRoot.cer)導出Session為SAZ文件供團隊分析5. 面試實戰(zhàn)策略5.1 問題回答框架遇到Fiddler相關(guān)問題時建議采用STAR法則Situation描述應用場景如移動端測試Task需要解決的問題如抓包分析Action具體操作步驟含技術(shù)細節(jié)Result達到的效果如發(fā)現(xiàn)接口性能瓶頸5.2 加分項展示在面試中可主動提及使用Fiddler發(fā)現(xiàn)過哪些典型問題如內(nèi)存泄漏、接口冪等性如何將Fiddler集成到CI/CD流程對Fiddler性能優(yōu)化的理解如緩存、流模式5.3 模擬實戰(zhàn)演練建議準備以下案例電商APP下單流程抓包分析API接口性能瓶頸定位弱網(wǎng)環(huán)境下圖片加載優(yōu)化方案我曾在實際項目中通過Fiddler發(fā)現(xiàn)某金融APP的嚴重漏洞在密碼重置流程中雖然前端做了校驗但通過修改Fiddler捕獲的請求包可以直接繞過驗證。這個案例充分展示了抓包工具在安全測試中的關(guān)鍵作用。