本文章轉載于搜狗測試
【Android】Fiddler技能get√
上周三,我們定制了自己的 Fiddler 能夠支持 WinNet 和 WinHttp 兩種請求。但是在使用 Fiddler 的過程中,總是磕磕絆絆,如何讓我們的Fiddler使用越來越順手,那就來 get 以下技能吧
問
測試過程中,手機借來借去是常有的事情,也許你剛在一臺手機上將自己IP添加上,過一會兒這臺手機被某某某拿走了,不一會兒,你的 Fiddler 上面就多了很多會話,不巧其中有個URL的參數id為空。bug?!然而,重復操作N遍,都沒有重現。仔細查看請求后發現不是自己使用的手機。如何擺脫曾經的小尾巴,請看下文
在Tools > Fiddler Options > Connections 下面默認的端口號都是8888,為了避免這種情況對自己的打擾,在找不到被某某某拿走的手機時,可以將自己的端口號修改為其他的,例如:8889。重啟Fiddler,再在自己使用的手機上做相應的修改即可
問
在 PC 上打開 Fiddler 用于查看手機端的請求,但總是被 PC 來來往往的請求干擾,如何只查看 Android 上的請求,而不被干擾呢
當然 Fiddler 有強大的 filter ,通過 filter 能夠只查看自己關注的請求。但是呢,有一些去服務器下載的請求,由于服務器有好多,添加過濾器有可能過濾掉本來想要看的內容,例如:某個 banner 展示成功的前提是:圖片資源下載成功。當我們在測試的過程中看到 banner 圖顯示不出來,到底是 banner 圖的功能有問題呢?還是服務器的問題呢?因此,作為一名認真負責的測試同學,我們想要準確定位bug的原因,就需要關注這個過程中發生了什么,而不能簡單的跟開發說:banner 圖顯示不出來了。SO,這種過濾如何實現呢?正確的處理方式是:點擊 Fiddler 左下角的“Capturing”。TA其實是File > Capture Traffic的快捷鍵,可以控制是否把 Fiddler 注冊為PC系統代理,當左下角顯示Capturing時,Capture Traffic是打開的,此時的IE的Internet選項>連接>局域網設置中的代理服務器是勾選的;否則是沒有勾選的。
問
測試過程中需要訪問測試服務器, 打開 Fiddler,在 PC 的etc目錄下修改 hosts 文件卻不能生效,為什么呢?
Fiddler 啟動時,修改 hosts 的時候是無效的,需要重啟 Fiddler才能生效。具體原因見下面大神 Eric Lawrence 的解釋:
Fiddler reuses connections, so if there was already an established connection, any change to the HOSTS file might not be noticed. You might try hitting CTRL+X to clear the Web Sessions list and the cache of reused connections.
Also, instead of using the PC’s Hosts file, instead consider clicking the Tools > HOSTS menu item inside Fiddler.
如大神所說,當 Fiddler 已經建立會話時,任何修改 hosts 的行為都不會被 Fiddler 注意到。可以通過 Fiddler 的 Tools > HOSTS 處導入本地的 hosts 文件。需要指測試服務器的時候,勾選"Enable remapping of requests for one host to a different host or IP, overriding DNS",否則去掉勾選