《吐血整理》高級系列教程-吃透Fiddler抓包教程(25)-Fiddler如何優雅地在正式和測試環境之間來回切換-下篇
1.簡介
在開發或者測試的過程中,由於項目環境比較多,往往需要來來回回地反覆切換,那麼如何優雅地切換呢?宏哥今天介紹幾種方法供小夥伴或者童鞋們進行參考。
2.實際工作場景
2.1問題場景
(1)已發布線上APP出現介面錯誤,如何測試線上APP訪問本地請求?
(2)已發布線上H5頁面,靜態資源或js調試,如何映射本地js?
2.2一般解決方案
猜測(一般明顯問題)、找到原發布包,修改請求資源url重新打包測試。需要前後端協調配合,耗時費力。
2.3聰明人解決方案
fiddler映射響應:
通過fidder攔截,將需要載入的資源映射到本地開發環境,而無需切換測試版APP
例如線上資源://online.com/api/page
映射載入本地資源://127.0.0.1/api/page
3.切換實戰
3.1腳本(Fiddler Script)
1.啟動Fiddler,點擊Rules-->Customize Rules... ,如下圖所示:

2.在Fiddler Script中的FiddlerObject頂部定義不同環境的object,如下圖所示:

3.在OnBeforeRequest中定義環境,如下圖所示:

4.點擊File-->Save,保存腳本,如下圖所示:

5.重啟Fiddler後,點擊Rules-->切環境-->選擇你要切換的環境即可,如下圖所示:

6.參考程式碼
宏哥這裡解釋一下,就是宏哥Fiddler檢查到宏哥訪問部落格園,你切換測試環境,此時就會訪問百度首頁,如果切換正式環境,此時就會訪問豆瓣首頁。別的類似。
RulesString("切環境",true)
RulesStringValue(0,"切到測試環境","www.baidu.com")
RulesStringValue(1,"切到線上環境","www.douban.com")
RulesStringValue(2,"切到其他環境--模擬請求不通","butong-fiddler.com")
public static var hl_env: String = null;
if (null != hl_env && oSession.uriContains("www.cnblogs.com")) { oSession.host=hl_env; }
3.2腳本(Fiddler Script)
1.啟動Fiddler,點擊Rules-->Customize Rules... ,如下圖所示:

2.打開後,彈出編輯器,按Ctrl + F,搜索「beforerequest」,如下圖所示:

3.在函數中加上切換規則,如下圖所示:

4.點擊File-->Save,保存腳本,如下圖所示:

5.重啟Fiddler後,訪問百度首頁可以看到,地址欄是百度的網址,但是頁面內容確實部落格園的,如下圖所示:

4.小結
好了,今天時間也不早了,宏哥就講解和分享到這裡,感謝你耐心地閱讀!!!

