1. 程式人生 > >fiddler和wireshark工具介紹及對比

fiddler和wireshark工具介紹及對比

轉自:http://www.blogbus.com/wanping-logs/238827556.html

fiddler和wireshark工具介紹及對比 - [測試技術知識]
版權宣告:轉載時請以超連結形式標明文章原始出處和作者資訊及本宣告http://www.blogbus.com/wanping-logs/238827556.html

在測試中,經常需要驗證傳送的訊息是否正確,或者在出現問題的時候,檢視手機客戶端傳送給server端的包內容是否正確,就需要用到抓包工具,而且我們手機客戶端和server端通訊比較常用的是http方式,所以針對其通訊特點,常用的抓包工具有Fiddler、Wireshark這兩種,下面分別介紹下兩個抓包工具的用法。

Fiddler
官網:http://fiddler2.com/

當啟動fiddler,程式將會把自己作為一個代理,所以的http請求在達到目標伺服器之前都會經過fiddler,同樣的,所有的http響應都會在返回客戶端之前流經fiddler。圖例如下:

測試手機應用,首先要明白他的訊息的互動

A.手機客戶端發請求給server

B.Server端返回結果給手機客戶端。這是一個互動

C.手機客戶端向server端傳送確認訊息,這時候server端收到客戶端傳送的確認訊息,不需要再做任何處理。

如何使用Fiddler

  1. 下載安裝Fiddler並安裝
    

下載地址:

http://fiddler2.com/get-fiddler

  1. 配置Fiddler
    

Tools->Fiddler Options

選擇Connections

使用fiddler捕獲https會話

預設情況下,fiddler是不會捕獲https會話的,所以需要自行設定下。啟動軟體,點選tools->Fiddler Options,在彈出框選擇“HTTPS”,如下頁面,將捕獲HTTPS連線這一項前面全打鉤,點選ok即可操作成功。

Capture HTTPS CONNECTs:捕獲https連線

Decrypt HTTPS traffic:解密HTTPS通訊

Ignore servercertificate errors:忽略伺服器證書錯誤

  1. 手機設定代理
    

設定手機代理,ip為電腦的ip,埠為:8888

具體設定方法:略

  1. 收集訊息
    

手機操作被測app,fiddler就會收到app傳送的訊息,我們可以分析app傳送的訊息和返回的結果,來發現一些問題。

收集訊息的時候,要對fiddler功能有所瞭解,下面介紹下fiddler工具各個功能模組。

1)fiddler的基本介面

首先介紹下fiddler基本介面。

Inspectors tab下有很多檢視Request或者Response的訊息。其中Raw Tab可以檢視完整的訊息,Headers tab 只檢視訊息中的header. 如下圖

2)filter的http統計

通過fiddler會話列表中會顯示捕獲的所有的http通訊量,並以列表的形式展現出來,點選你想檢視的一個或者多個會話,再點選右邊的“Statistics”選單,你就可以很輕鬆的檢視到請求數、傳送位元組數等資訊。如果你選擇第一個請求和最後一個請求,還可以獲得頁面載入所消耗的總體時間,還可以從圖表中分辨出哪些請求耗時最多,從而可以對頁面的訪問速度進行優化

3)Fiddler中設定斷點修改Request(目前沒有用到該功能)

Fiddler最強大的功能莫過於設定斷點,設定好斷點後,你可以修復httpRequest的任何訊息包括host,cookie或者表單中的資料。設定斷點有兩種方法。

第一種:開啟fiddler點選Rules->Automatic Breakpoint->Before Requests(這種方法會中斷所有的會話)

消除辦法:點選Rules->Automatic Breakpoint->Disabled

第二種:在命令列中輸入命令:bpu www.taobao.com(這種方法只會中斷www.baidu.com)

消除辦法:在命令列中輸入bpu

5、設定斷點修改Response(測試小把手的用到該功能)
當然fiddler中也能修改Response

第一種:開啟Fiddler點選Rules->Automatic Breakpoint->After Respinse(這種方法會中斷所有的會話)

消除辦法:點選Rules->Automatic Breakpoint ->Disabled

第二種:在命令列中輸入命令:bpafter www.taobao.com(這種方法會中斷www.taobao.com)

消除辦法:命令列中輸入命令bpafter

修改Response方法:

選擇Rules-> Automatic Breakpoint->After Respinse,手機點選操作,傳送query。

選中左區的query,點選右邊的Raw,修改Raw裡面的返回結果,執行“Run to Completion”

這種方法是比較簡單的修改Response的方法

優點:

1) 簡單易操作,選中後即可修改Response結果

2) 所見即所得,修改後馬上可以看到效果

缺點:

1) 只適用於一次請求,下次請求需要重新設定

2) 手動修改需要花費時間,如果程式等待超時,本次設定的Response結果失效

還有一種是自動返回Response結果的方法,即選中query,在右邊的按鈕中點選AutoResponder,並設定query的規則,規則可以是一個檔案,也可以是正則表示式,只要符合該規則,即可自動返回Response結果,Response可以是一個檔案,也可以是正則表示式。具體大家可以自己去研究下。

6、設定過濾
可以設定過濾條件,過濾選定的域名,多個域名之間使用分號分隔

參考資料:

http://i.wanz.im/2013/04/30/debugging_http_request_with_fiddler/

http://help.locoy.com/Document/Url/Fiddler.htm

Wireshark
Wireshark是另外一種抓包工具,這種工具比fiddler更強大,訊息量更多。大家可能會問:有了fiddler,為什麼還要用wireshark呢?這裡說下,在測試中,發現用fiddler抓包,有些包是沒有抓到的,比如在驗證反作弊資訊的時候,反作弊pingback資訊的訊息用fiddler就沒抓到,用wireshark就抓到了。還有另外一種情況,就是在驗證cna的時候,如果先用fiddler抓包,如果沒有種下cna的時候,以後就永遠沒有cna了,情況很詭異。解決辦法就是把包解除安裝了重新安裝,第一次用wireshark抓包。

如何使用wireshark
Wireshark配置起來比fiddler麻煩一些,如果不配代理,需要安裝個Connectify來建立熱點,然後再安裝wireshark進行抓包,如果配置了代理,直接安裝wireshark即可。

  1.   下載並安裝wireshark
    

下載地址:http://www.pc6.com/softview/SoftView_63986.html

安裝wireshark,傻瓜式安裝。

  1.   使用wireshark進行抓包
    

開啟wireshark,介面選擇抓包的介面,如下圖(是按照我的電腦操作來展現的,可能每個人電腦上的介面列表不太一樣):

點選介面,進入抓包介面,如下圖:

Wireshark抓的包資訊量很大,需要進行一些過濾操作,才能把有用的資訊拿到,紅色標註部分輸入過濾規則,即可過濾出我們需要的一些資訊。

Wireshark的過濾規則,使用的是正則表示式來寫的。具體可參考:http://wenku.baidu.com/link?url=lpU_NJguXVsiZ1YMTz13b_ngl2xNE--CFh8xChvc5QjisTFV4VhX65ID4TvX5WuaHLX7hRwMfEgTKylnUAdtaOF3rkVF_JfXoEDxjlTgq7i

舉例,如果想過濾域名為“mclick.simba.taobao.com”,可以設定如下過濾表示式

過濾host:http &&http.host==”mclick.simba.taobao.com

如何使用Connectify
如果需要不使用代理,需要建立熱點來用wireshark進行抓包。

建立熱點需要用到Connectify。

  1.   下載並安裝Connectify
    

下載地址:

http://softdownload.hao123.com/hao123-soft-online-bcs/soft/C/2013-08-27_ConnectifyInstaller.exe

傻瓜式安裝

  1.   配置Connectify
    

根據提示:設定網路名稱;網路密碼等

配置wireshark,選擇網絡卡

  1.   手機配置
    

手機連線到配置的connectify配置的網路上,輸入密碼,即可把電腦作為熱點,手機連線到指定的connectify