在實際的測試過程中,我們難免需要去修改某個請求的返回結果或請求數(shù)據(jù)。這個時候,我們一般會借助某個工具去實現(xiàn),比如fiddler。
fiddler是一個攔截和修改網(wǎng)絡請求的工具。我們通過將fiddler設置為代理服務器的方式去攔截客戶端和服務端的所有請求,然后根據(jù)測試需要,任意修改里面的內容,以便構造不同的異常場景。
如何安裝和配置fiddler?
首先,我們在百度搜索fiddler安裝包并安裝到本地。安裝完畢后,我們開始設置https請求抓取配置。在菜單欄依次點擊tools--Options,彈出Options設置窗口后,點擊Https tab頁,勾選上如下選項:Capture HTTPS CONNECTs、Decrypt HTTPs traffic(勾選后,fiddler彈出生成https證書的窗口,一直點yes即可)、Ignore server certificate errors、Check for certificate revocation。切換到Connections tab頁,設置接口和連接權限,接口默認8888即可,連接權限設置應勾選如下項:Allow remote computer to connect、reuse client connections、reuse server connections、Monitor all connections。
連接被測設備并安裝證書
https請求屬于加密請求,我們要抓取它,需要在被測設備上安裝fiddler證書,這里以iOS手機為例。首先配置手機網(wǎng)絡代理,確保手機和fiddler在同一個網(wǎng)絡內,并將手機當前連接網(wǎng)絡的代理服務器指向fiddler所在機器(端口號為fiddler端口,默認8888,按實際填寫)。然后通過瀏覽器訪問http://fiddler機器ip:端口號下載證書并安裝。
開始使用fiddler攔截請求
打開fiddler,然后操作手機上的app,不出意外的話,你會遇到如下幾個問題:配置代理后,手機無法上網(wǎng)了,但http請求可以到達fiddler側;抓取不到https請求,出現(xiàn)了tunnel to ?xxxx:443的異常請求。此時,可以嘗試如下兩種處理方式解決。
1. fiddler抓取Android或iOS設備上的請求時,很容易出現(xiàn)生成的證書不可用。可以到官網(wǎng)下載用于移動設備的證書生成插件fiddlercertmaker.exe,然后再重新生成證書重試;
2.若步驟1還是無法解決,則檢查你手機上的fiddler證書是否已信任。iOS的通用--關于本機--證書信任設置可開啟該信任狀態(tài)。
一般經(jīng)過上述處理后,fiddler就能正常抓取https請求了。