在測試中,常常須要驗證發送的消息是否正確,或者在出現問題的時候,查看手機客戶端發送給server端的包內容是否正確,就須要用到抓包工具,並且咱們手機客戶端和server端通信比較經常使用的是http方式,因此針對其通信特色,經常使用的抓包工具備Fiddler、Wireshark這兩種,下面分別介紹下兩個抓包工具的用法。html
官網:http://fiddler2.com/正則表達式
當啓動fiddler,程序將會把本身做爲一個代理,因此的http請求在達到目標服務器以前都會通過fiddler,一樣的,全部的http響應都會在返回客戶端以前流經fiddler。圖例以下:服務器
測試手機應用,首先要明白他的消息的交互cookie
A.手機客戶端發請求給server網絡
B.Server端返回結果給手機客戶端。這是一個交互app
C.手機客戶端向server端發送確認消息,這時候server端收到客戶端發送的確認消息,不須要再作任何處理。工具
下載地址:http://fiddler2.com/get-fiddler測試
Tools->Fiddler Options優化
選擇Connectionsurl
使用fiddler捕獲https會話
默認狀況下,fiddler是不會捕獲https會話的,因此須要自行設置下。啓動軟件,點擊tools->Fiddler Options,在彈出框選擇「HTTPS」,以下頁面,將捕獲HTTPS鏈接這一項前面全打鉤,點擊ok便可操做成功。
Capture HTTPS CONNECTs:捕獲https鏈接
Decrypt HTTPS traffic:解密HTTPS通訊
Ignore servercertificate errors:忽略服務器證書錯誤
設置手機代理,ip爲電腦的ip,端口爲:8888
具體設置方法:略
手機操做被測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
固然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能夠是一個文件,也能夠是正則表達式。具體你們能夠本身去研究下。
能夠設置過濾條件,過濾選定的域名,多個域名之間使用分號分隔
參考資料:
http://i.wanz.im/2013/04/30/debugging_http_request_with_fiddler/
http://help.locoy.com/Document/Url/Fiddler.htm
Wireshark是另一種抓包工具,這種工具比fiddler更強大,消息量更多。你們可能會問:有了fiddler,爲何還要用wireshark呢?這裏說下,在測試中,發現用fiddler抓包,有些包是沒有抓到的,好比在驗證反做弊信息的時候,反做弊pingback信息的消息用fiddler就沒抓到,用wireshark就抓到了。還有另一種狀況,就是在驗證cna的時候,若是先用fiddler抓包,若是沒有種下cna的時候,之後就永遠沒有cna了,狀況很詭異。解決辦法就是把包卸載了從新安裝,第一次用wireshark抓包。
Wireshark配置起來比fiddler麻煩一些,若是不配代理,須要安裝個Connectify來創建熱點,而後再安裝wireshark進行抓包,若是配置了代理,直接安裝wireshark便可。
下載地址:http://www.pc6.com/softview/SoftView_63986.html
安裝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」
若是須要不使用代理,須要創建熱點來用wireshark進行抓包。
創建熱點須要用到Connectify。
下載地址:
http://softdownload.hao123.com/hao123-soft-online-bcs/soft/C/2013-08-27_ConnectifyInstaller.exe
傻瓜式安裝
根據提示:設置網絡名稱;網絡密碼等
配置wireshark,選擇網卡
手機鏈接到配置的connectify配置的網絡上,輸入密碼,便可把電腦做爲熱點,手機鏈接到指定的connectify