前言
筆者今天的這篇文章呢,想使用通俗易懂的話語,讓大家明白以下內(nèi)容:
什么是抓包哪些場景需要用到抓包Fiddler抓包的原理怎樣使用Fiddler進行移動端抓包
一、抓包
包 (Packet) 是TCP/IP協(xié)議通信傳輸中的數(shù)據(jù)單位,一般也稱“數(shù)據(jù)包”。
我們平常測試過程中所說的數(shù)據(jù)包其實就是接口請求的數(shù)據(jù),在HTTP請求中,包括請求頭信息、請求內(nèi)容、響應(yīng)頭信息、響應(yīng)內(nèi)容。
二、什么是抓包
用特定的工具獲取客戶端與服務(wù)端之間發(fā)送和返回的數(shù)據(jù)包。目的是分析數(shù)據(jù)包的協(xié)議、內(nèi)容等,從而判斷接口的設(shè)計是否符合要求,比如抓包某次請求的請求參數(shù)與響應(yīng)參數(shù),查看參數(shù)是否正確。
三、哪些場景下需要抓包
對于初學者或者沒有接觸過接口測試的同學而言,可能不太明白做接口測試或者接口自動化測試為什么一定要學會對接口數(shù)據(jù)進行抓包。
那么在哪些場景下需要抓包獲取請求數(shù)據(jù)呢?
在實際測試過程中,用的最多的場景是1、2、3、4。
四、Fiddler
抓包工具有很多種,如Wireshark、Fiddler、Charlse、Tcpdump、瀏覽器工具(F12)等,但在軟件測試工作中抓包對象一般是HTTP協(xié)議的接口,所以最多的是瀏覽器工具、Fiddler/Charlse。
Fiddler特點簡單歸納如下:
五、Fiddler抓包原理
通常,我們使用瀏覽器瀏覽網(wǎng)頁,或者使用手機上的APP,交互可以使用以下簡化的流程圖表示:
客戶端(PC端或移動端) 向服務(wù)端通過發(fā)送HTTP請求進行數(shù)據(jù)交互,而我們的需求是,抓取這個交互過程中的數(shù)據(jù)。
我們只需要在客戶端與服務(wù)端之間加上一個中介,讓它們之間交互的數(shù)據(jù)都通過這個中介,中介記錄這些通過自身的數(shù)據(jù),就能獲取到客戶端與服務(wù)端之間具體的交互數(shù)據(jù)了。
Fiddler便可以充當這個中介角色,交互流程如下:
啟動Fiddler其實就是啟動了一臺代理web服務(wù)器(Proxy),代理地址為127.0.0.1,端口為8888。只要HTTP請求通過127.0.0.1:8888 (即Fiddler) 進行代理發(fā)送與接收,F(xiàn)iddler就會記錄經(jīng)過自身的HTTP請求數(shù)據(jù),便抓取到了HTTP請求的相關(guān)數(shù)據(jù)。
而怎樣才能使得HTTP請求都通過127.0.0.1:8888進行代理?Fiddler啟動時IE瀏覽器的代理會自動設(shè)置127.0.0.1:8888為代理地址,Chrome、Firefox需要在瀏覽器中手動修改,移動端則需要在手機里設(shè)置。
六、安裝
進入官網(wǎng)下載
需填寫內(nèi)容可填寫如下,Windows系統(tǒng)點擊【Download for Windows】,點擊后會跳轉(zhuǎn)頁面并開始下載 (沒有的話可以多嘗試兩次) ,如果沒有下載可根據(jù)跳轉(zhuǎn)頁面提示進行點擊。
下載后得到安裝文件FiddlerSetup.exe,一路傻瓜式安裝即可。目前下載的版本為Progress Telerik Fiddler Classic。
安裝完成后,打開Fiddler,主界面如下:
- 如圖所示,切換至Inspectors可查看對應(yīng)請求的請求參數(shù)和返回參數(shù)
- 請求參數(shù)、返回參數(shù)不同內(nèi)容及格式的展示,可以切換圖中對應(yīng)展示窗口頂部的Tab按鈕,如Headers、WebForms、Raw、Json等。
- 會話窗口圖標說明見文章末說明。
接下來介紹怎樣使用Fiddler進行手機移動端抓包。
七、Fiddler移動端抓包
我們先來捋一下移動端抓包的大概思路:
按照如上思路我們開始進行具體設(shè)置。
7.1 第一步:允許遠程計算機連接
設(shè)置步驟:Tools–>Options–>Connections–>勾選Allow remote computers to connect–>再點擊OK,其他默認即可,如下圖所示:
勾選后如果有彈窗確認頁面,點擊【確定】即可。順便說一下,上圖勾選頁面中的8888為默認的端口號,在第二步設(shè)置時需要使用。
7.2 第二步,設(shè)置手機網(wǎng)絡(luò)代理
首先,需要先獲取到安裝Fiddler的電腦的IPv4地址,在cmd中輸入ipconfig,如下圖所示:
然后,在手機上找到對應(yīng)的WLAN網(wǎng)絡(luò),進行該網(wǎng)絡(luò)代理的設(shè)置,以榮耀V20手機為例,操作步驟如下圖所示:
手機系統(tǒng)設(shè)置–>WLAN–>修改網(wǎng)絡(luò)–>高級選項–>代理–>選擇手動–>主機名填入上一步IPv4–>端口填入默認的8888–>保存
注意:
- 手機必須與電腦連接的是同一個網(wǎng)絡(luò),即連同一個WIFI或手機直接連電腦的熱點,再對這個網(wǎng)絡(luò)進行代理設(shè)置,否則無法抓取數(shù)據(jù)。
- 第2步選擇修改網(wǎng)絡(luò)時,手機型號不同可能需要不一樣的操作才能進入到修改網(wǎng)絡(luò)頁面。
到這一步,重啟Fiddler后,便可以對手機上的http請求進行抓包了。如果不能抓取的話,可以在手機里重新保存上圖中的代理設(shè)置,再進行請求。到這一步后,手機上打開APP操作,抓包的http請求,如下圖所示:
可以看到,這里面只抓取了http請求,如果要對https請求進行抓包,則還需要進行下面的操作。
7.3 第三步,允許捕獲HTTPS連接
設(shè)置步驟:Tools–>Options–>HTTPS–>勾選Decrypt HTTPS traffic–>再勾選Ignore server certificate errors–>點擊OK
注意,保存設(shè)置后需要重啟Fiddler才會生效。
7.4 第四步,手機安裝證書
步驟如下:
Android手機到這一步就可以了,蘋果手機還需要在手機設(shè)置里去信任下載的證書,信任證書的操作步驟這里不做過多說明。
完成這兩步后,我們即可以抓取手機發(fā)出的http請求,又可以抓取手機發(fā)出的https請求。在手機上打開今日頭條APP,驗證如下:
至此,F(xiàn)iddler移動端抓包設(shè)置便完成。
附上會話窗口圖標說明,如下:
總結(jié)
今天的文章就到這里了喲,各位小伙伴學會了沒有,喜歡的小伙可以點贊收藏評論加關(guān)注喲,我每天都會和大家分享不同的知識喲。