眾所周知,我們在做接口測試的時候有兩種情況:
第一種是先拿到接口測試規范文檔,再去做接口測試。
第二種是沒有接口文檔,只有通過自己抓包。
那么說到抓包,就不得不說抓包工具,對於瀏覽器web端,我們只需要通過F12打開開發者工具便可抓包;但是對於手機端,我們就需要利用抓包工具,比如常用的抓包工具:fiddler、Charles。
接下來的內容就是教你如何利用fiddler抓取手機端的包。
這里使用的是安卓模擬器,當然如果你喜歡使用真機測試也是可以的。
-
下載並安裝fiddler
建議去官網下載:
https://www.telerik.com/fiddler
當然,官網下載可能比較慢,這里提供百度網盤下載。
百度網盤地址:
鏈接:https://pan.baidu.com/s/18hzkk4LRCgsqHOeTuLRWVQ
提取碼:fe12安裝:
安裝方式很簡單,雙擊下載好的.exe文件,然后選擇目錄,next,next,完成安裝即可。
下載並安裝完成后打開的界面如下:
-
配置fiddler代理:Tools -> Options
想要抓取https的數據包必須安裝證書。
接着是手機的配置
-
查看電腦IP地址
方式一:打開fiddler軟件 -> 鼠標移至右上角Oline處

方式二:打開cmd -> ipconfig

-
模擬器(手機)配置代理:設置 -> WLAN -> 長按wabao -> 修改網絡(使模擬器與fiddler代理服務器在同一網絡)

-
打開手機模擬器的瀏覽器輸入ip及端口號

點擊FiddlerRoot certificate下載證書,下載完成后點擊允許安裝證書
這時候一定要把安裝的證書設置為信任的證書:手機設置->通用->關於本機->證書新人設置,把剛才安裝的證書設置為信任的證書。

-
然后打開手機上的app,在fiddler中就可以看到http的數據包了,打開一個https的連接,也可以看到,數據是沒有加密的,說明https數據包抓取成功。
🐒PS:如果前面的步驟都設置完成,還是抓不到包,極大可能是因為證書配置有問題,把之前的證書清除,再按照步驟重新配置一遍,重啟fiddler,並且重新在手機上安裝證書或者重啟模擬器。
🐒CA證書:抓取HTTPS的數據包。
🐒fiddler代理抓取不到數據包的兩種情況:
-
雖然fiddler代理可以抓取大多數的數據包,但並不是所有的數據包都能抓到。比如:http2、tcp、udp、websocket,fiddler代理是抓取不到這些數據包的。因為fiddler是基於.net framework實現的,.net framework不支持上述列舉的協議。
-
還有另外一種情況也是無法抓到數據包的,app使用自帶的證書,app不信任我們給手機安裝的證書。fiddler抓包的原理是中間人攻擊,也就是說,兩頭瞞,欺騙客戶端還欺騙服務器端,如果https證書在app里面寫死,app只信任自己的證書,fiddler代理就沒有辦法瞞過客戶端了,因此也就抓取不到數據包。
-
