1.簡介
在開發或者測試的過程中,由於項目環境比較多,往往需要來來回回地反覆切換,那麼如何優雅地切換呢?宏哥今天介紹幾種方法供小夥伴或者童鞋們進行參考。
2.實際工作場景
2.1問題場景
(1)已發佈線上APP出現接口錯誤,如何測試線上APP訪問本地請求?
(2)已發佈線上H5頁面,靜態資源或js調試,如何映射本地js?
2.2一般解決方案
猜測(一般明顯問題)、找到原發布包,修改請求資源url重新打包測試。需要前後端協調配合,耗時費力。
2.3聰明人解決方案
fiddler映射響應:
通過fidder攔截,將需要加載的資源映射到本地開發環境,而無需切換測試版APP
例如線上資源:http://online.com/api/page
映射加載本地資源:http://127.0.0.1/api/page
3.切換實戰
3.1第一種(hosts工具維護)
fiddler中自帶hosts工具維護,但是這種方法比較麻煩,具體操作步驟如下:
1.啓動Fiddler,點擊Tools-->HOSTS,如下圖所示:
2.點擊HOSTS後,在HOSTS重新匹配頁面,勾選“Enable remapping of requests for one host to a different host or IP, override DNS.”,啓用配置。如下圖所示:
3.點擊“Import Windows Hosts File”,如下圖所示:
4.導入host文件,將不用環境註釋掉,如下圖所示:
5.點擊“Save”即可,如下圖所示:
3.2第二種方法(命令)
使用命令urlreplace,界面左下角輸入框輸入後回車, 適用臨時切換環境測試。例如:要將百度首頁的切換成博客園首頁,輸入如下命令:
urlreplace www.baidu.com www.cnblogs.com
具體操作步驟如下:
1.首先宏哥訪問百度首頁,進入百度首頁,如下圖所示:
2.在Fiddler界面左下角輸入框輸入後回車,此時狀態欄也提示替換成功。如下圖所示:
3.再次刷新百度首頁後,發現網址是www.baidu.com,但是瀏覽器訪問的卻是博客園首頁,這是因爲在訪問百度首頁網址的時候,Fiddler自動地將其替換成博客園的首頁網址。如下圖所示:
4.解除域名替換。一定要記住在測試完成後,在fiddler工具左側底部的命令框位置中輸入框中輸入命令urlreplace後回車即可解除,此時狀態欄也提示解除成功,還原到原請求域名。如下圖所示:
3.3第三種方法(斷點)
利用斷點,修改請求的url來達到替換url的目的。具體操作步驟如下:
1.確定要替換的的url,然後訪問該url,Fiddler抓包,選中該記錄-右鍵-copy-justUrl。例如:宏哥以百度爲例,如下圖所示:
2.設置斷點,在命令行中輸入bpu https://www.baidu.com 然後按回車,狀態欄提示設置斷點成功。如下圖所示:
3.再次訪問步驟1的頁面,此時,請求已被截取,如下圖所示:
4.進行修改後宏哥修改成北京宏哥,點擊“Run to Completion”,如下圖所示:
5.此時已抓取到修改後的url請求,如下圖所示:
6.取消斷點 在命令行中輸入bpu 然後按回車。
3.4第四種方法(AutoResponder)
使用Fiddler自帶的AutoResponder。使用 fiddler 的 AutoResponder 功能,可以指定攔截 Rule 以及轉發的地址,這個地址可以是另一個網站的 URL,或者是本地的文件也可以。
EXACT:關鍵字表示全匹配,REGEX則可以用正則表達式模糊匹配。具體操作步驟 宏哥在這裏就不贅述了,如果有不清楚的,可以看看宏哥前邊專門有關AutoResponder 單獨一篇文章的介紹。
示例:
Rule Editor 的兩個框分別填入:
REGEX:https://baidu.com https://www.cnblogs.com
這個規則表示 從 https://baidu.com 的所有請求,都轉發到 https://www.cnblogs.com 這個地址上。然後點擊 Save 保存,如果有多個 Rule,還可以點擊 Group 進行合併組。如下圖所示:
4.小結
好了,今天時間也不早了,宏哥就講解和分享到這裏,感謝你耐心地閱讀!!!