基於Python的介面自動化測試(二)抓包工具Fiddler
常見的抓包工具
1. Fiddler:Fiddler是一款免費且功能強大的資料包抓取軟體,主要用於抓取HTTP/HTTPS協議,簡單易用目前主流的版本是Fiddler4,最新版本已經到了Fiddler5。
2. Charles:這是一款在Mac下常用的抓包工具。
3. Wireshark:功能十分強大的抓包工具,可以支援spdy,tcp,udp等網路協議的抓包。
對於測試來說,推薦使用Fiddler,簡單實用。
Fiddler的配置
Fiddler目前已經更新到了Fiddler5,但是還不太穩定,所以推薦下載Fiddler4.
由於目前大部分的網站都使用的HTTPS協議,所以我們需要在Fiddler裡面設定獲取
1.首先選擇選單欄裡Tools一項選擇Options
2.開啟Options後,選擇HTTPS,勾選如下的三個選項
3.根據不同情況選擇抓取的目標,一般選擇from all processes
from all processes :抓取所有的 https請求, 包括本機和手機
from browsers only :只抓取瀏覽器中的https請求
from non-browsers only :只抓取除了瀏覽器之外的所有https請求
from remote clients only :只抓取遠端的客戶端的https請求,可以代表手機
4.安裝證書
設定好HTTPS後,選擇Actions,先點選
Root Certificate to Desktop,然後生成的證書會匯出在桌面上。
然後開啟Google瀏覽器,開啟設定。點選最下方的高階選項,選擇管理證書
選擇匯入,將桌面上的FiddlerRoot匯入
5.在Google瀏覽器裡設定代理為127.0.0.1(本地),8888(Fiddler抓包埠號)
6.配置好Fiddler後需要重啟一下Fiddler,不然設定不會生效
Fiddler的簡單使用
1.主介面
當我們用Google瀏覽器輸入www.baidu.com進入的時候,Fiddler就會捕獲到請求
根據上圖,左邊的豎框表示捕獲到的請求列表。
我們選擇一次請求,在右邊選擇Inspectors,就會出現兩個橫框,上面的橫框表示這次請求中的Request請求的資訊,下面的橫框表示Response請求的資訊。對於Request和Response,Fiddler都提供了多種形式的展現。一般常用的檢視格式有Headers,TextView,WebForms,Raw,JSON
2.操作請求
點選×可以有選擇的刪除請求
像Remove all就是清空掉捕獲到的所有請求,Images就時刪除圖片資源的請求,Non-200s就是刪除code碼為200以外的所有請求。
Replay可以重新提交一次請求,達到模擬我們操作的效果
3.設定過濾
Fiddler可以設定過濾規則使得我們可以只獲取我們想要的HTTP請求。
首先啟用過濾,勾選Use Filters
一般我們只用關注Hosts裡的設定
第一個選項表示網路的過濾,一般我們都選擇No Zone Filter
No Zone Filter 表示不過濾
Show only Intranet Hosts 表示只顯示內網請求
Show noly Internet Hosts 表示只顯示外網請求
第二個選項表示域名的過濾,根據不同需要來選擇,一般我們都選擇Show only the following Hosts。
No Host Filter 表示不過濾
Hide the following Hosts 表示隱藏下方指定的域名請求
Show only the following Hosts 表示只顯示下方指定的域名請求
Flag the following Hosts 表示加粗標記下方指定的域名請求
這下方的輸入框用來輸入需要過濾的域名,可以過濾多個域名,域名與域名之間用;隔開,這裡的域名是和上面第二個選項過濾規則配套使用的
設定好之後,就能按照你所規定的規則捕獲你之後操作的請求。
如果是要對之前已經捕獲到的請求進行過濾,需要點選旁邊的Actions,選擇Run Filterset now就可以將之前捕獲到的請求按照規則過濾顯示。
Fiddler還支援儲存過濾規則
Save Filterset 可以將你此次設定的規則儲存為ffx檔案
Load Filterset 可以載入ffx檔案獲取過濾規則
Reload 一般是載入你最近儲存的規則,提供的一個快捷方式,其實跟Load Filterset一樣
4.模擬請求
有的時候前端還沒有開發完成,我們可以使用Fiddler模擬請求來測試介面。
在右方編輯框選擇Composer,會彈出一個編輯框。這裡我們選擇模擬的請求方式是GET,url是http://www.baidu.com/,選擇的協議是HTTP1.1。在下方的框就是請求頭的內容,裡面寫上一些介面所需的引數(一般會根據介面文件來輸入引數進行測試),填寫完後點擊右上方的Execute選擇執行。最後成功捕獲到這次模擬的請求。
Fiddler是一門強大且易用的抓包工具,可以對Request和Response進行斷點,還可以進行編碼和解碼,但對於測試不是常用的功能。