fiddler和wireshark工具介绍及对比 - [测试技术知识]
2013-11-19
fiddler和wireshark工具介紹及對(duì)比 - [測試技術(shù)知識(shí)]
版權(quán)聲明:轉(zhuǎn)載時(shí)請(qǐng)以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明http://www.blogbus.com/wanping-logs/238827556.html
在測試中,經(jīng)常需要驗(yàn)證發(fā)送的消息是否正確,或者在出現(xiàn)問題的時(shí)候,查看手機(jī)客戶端發(fā)送給server端的包內(nèi)容是否正確,就需要用到抓包工具,而且我們手機(jī)客戶端和server端通訊比較常用的是http方式,所以針對(duì)其通訊特點(diǎn),常用的抓包工具有Fiddler、Wireshark這兩種,下面分別介紹下兩個(gè)抓包工具的用法。
Fiddler
官網(wǎng):http://fiddler2.com/
當(dāng)啟動(dòng)fiddler,程序?qū)?huì)把自己作為一個(gè)代理,所以的http請(qǐng)求在達(dá)到目標(biāo)服務(wù)器之前都會(huì)經(jīng)過fiddler,同樣的,所有的http響應(yīng)都會(huì)在返回客戶端之前流經(jīng)fiddler。圖例如下:
?測試手機(jī)應(yīng)用,首先要明白他的消息的交互
A.手機(jī)客戶端發(fā)請(qǐng)求給server
B.Server端返回結(jié)果給手機(jī)客戶端。這是一個(gè)交互
C.手機(jī)客戶端向server端發(fā)送確認(rèn)消息,這時(shí)候server端收到客戶端發(fā)送的確認(rèn)消息,不需要再做任何處理。
如何使用Fiddler
1.???? 下載安裝Fiddler并安裝
下載地址:http://fiddler2.com/get-fiddler
2.???? 配置Fiddler
Tools->Fiddler Options
選擇Connections
?使用fiddler捕獲https會(huì)話
默認(rèn)情況下,fiddler是不會(huì)捕獲https會(huì)話的,所以需要自行設(shè)置下。啟動(dòng)軟件,點(diǎn)擊tools->Fiddler Options,在彈出框選擇“HTTPS”,如下頁面,將捕獲HTTPS連接這一項(xiàng)前面全打鉤,點(diǎn)擊ok即可操作成功。
?
Capture HTTPS CONNECTs:捕獲https連接
Decrypt HTTPS traffic:解密HTTPS通信
Ignore servercertificate errors:忽略服務(wù)器證書錯(cuò)誤
3.???? 手機(jī)設(shè)置代理
設(shè)置手機(jī)代理,ip為電腦的ip,端口為:8888
具體設(shè)置方法:略
4.???? 收集消息
手機(jī)操作被測app,fiddler就會(huì)收到app發(fā)送的消息,我們可以分析app發(fā)送的消息和返回的結(jié)果,來發(fā)現(xiàn)一些問題。
收集消息的時(shí)候,要對(duì)fiddler功能有所了解,下面介紹下fiddler工具各個(gè)功能模塊。
1)fiddler的基本界面
首先介紹下fiddler基本界面。
Inspectors tab下有很多查看Request或者Response的消息。其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header. 如下圖
?
2)filter的http統(tǒng)計(jì)
通過fiddler會(huì)話列表中會(huì)顯示捕獲的所有的http通信量,并以列表的形式展現(xiàn)出來,點(diǎn)擊你想查看的一個(gè)或者多個(gè)會(huì)話,再點(diǎn)擊右邊的“Statistics”菜單,你就可以很輕松的查看到請(qǐng)求數(shù)、發(fā)送字節(jié)數(shù)等信息。如果你選擇第一個(gè)請(qǐng)求和最后一個(gè)請(qǐng)求,還可以獲得頁面加載所消耗的總體時(shí)間,還可以從圖表中分辨出哪些請(qǐng)求耗時(shí)最多,從而可以對(duì)頁面的訪問速度進(jìn)行優(yōu)化
?
3)Fiddler中設(shè)置斷點(diǎn)修改Request(目前沒有用到該功能)
Fiddler最強(qiáng)大的功能莫過于設(shè)置斷點(diǎn),設(shè)置好斷點(diǎn)后,你可以修復(fù)httpRequest的任何消息包括host,cookie或者表單中的數(shù)據(jù)。設(shè)置斷點(diǎn)有兩種方法。
第一種:打開fiddler點(diǎn)擊Rules->Automatic Breakpoint->Before Requests(這種方法會(huì)中斷所有的會(huì)話)
消除辦法:點(diǎn)擊Rules->Automatic Breakpoint->Disabled
第二種:在命令行中輸入命令:bpu www.taobao.com(這種方法只會(huì)中斷www.baidu.com)
消除辦法:在命令行中輸入bpu
5、設(shè)置斷點(diǎn)修改Response(測試小把手的用到該功能)
當(dāng)然fiddler中也能修改Response
第一種:打開Fiddler點(diǎn)擊Rules->Automatic Breakpoint->After Respinse(這種方法會(huì)中斷所有的會(huì)話)
消除辦法:點(diǎn)擊Rules->Automatic Breakpoint ->Disabled
第二種:在命令行中輸入命令:bpafter www.taobao.com(這種方法會(huì)中斷www.taobao.com)
消除辦法:命令行中輸入命令bpafter
修改Response方法:
選擇Rules-> Automatic Breakpoint->After Respinse,手機(jī)點(diǎn)擊操作,發(fā)送query。
選中左區(qū)的query,點(diǎn)擊右邊的Raw,修改Raw里面的返回結(jié)果,運(yùn)行“Run to Completion”
?
這種方法是比較簡單的修改Response的方法
優(yōu)點(diǎn):
1)? 簡單易操作,選中后即可修改Response結(jié)果
2)? 所見即所得,修改后馬上可以看到效果
缺點(diǎn):
1)? 只適用于一次請(qǐng)求,下次請(qǐng)求需要重新設(shè)定
2)? 手動(dòng)修改需要花費(fèi)時(shí)間,如果程序等待超時(shí),本次設(shè)定的Response結(jié)果失效
還有一種是自動(dòng)返回Response結(jié)果的方法,即選中query,在右邊的按鈕中點(diǎn)擊AutoResponder,并設(shè)定query的規(guī)則,規(guī)則可以是一個(gè)文件,也可以是正則表達(dá)式,只要符合該規(guī)則,即可自動(dòng)返回Response結(jié)果,Response可以是一個(gè)文件,也可以是正則表達(dá)式。具體大家可以自己去研究下。
?
6、設(shè)置過濾
可以設(shè)置過濾條件,過濾選定的域名,多個(gè)域名之間使用分號(hào)分隔
?
?
參考資料:
http://i.wanz.im/2013/04/30/debugging_http_request_with_fiddler/
http://help.locoy.com/Document/Url/Fiddler.htm
?
Wireshark
Wireshark是另外一種抓包工具,這種工具比fiddler更強(qiáng)大,消息量更多。大家可能會(huì)問:有了fiddler,為什么還要用wireshark呢?這里說下,在測試中,發(fā)現(xiàn)用fiddler抓包,有些包是沒有抓到的,比如在驗(yàn)證反作弊信息的時(shí)候,反作弊pingback信息的消息用fiddler就沒抓到,用wireshark就抓到了。還有另外一種情況,就是在驗(yàn)證cna的時(shí)候,如果先用fiddler抓包,如果沒有種下cna的時(shí)候,以后就永遠(yuǎn)沒有cna了,情況很詭異。解決辦法就是把包卸載了重新安裝,第一次用wireshark抓包。
如何使用wireshark
Wireshark配置起來比fiddler麻煩一些,如果不配代理,需要安裝個(gè)Connectify來建立熱點(diǎn),然后再安裝wireshark進(jìn)行抓包,如果配置了代理,直接安裝wireshark即可。
1.?????? 下載并安裝wireshark
下載地址:http://www.pc6.com/softview/SoftView_63986.html
安裝wireshark,傻瓜式安裝。
2.?????? 使用wireshark進(jìn)行抓包
打開wireshark,界面選擇抓包的接口,如下圖(是按照我的電腦操作來展現(xiàn)的,可能每個(gè)人電腦上的接口列表不太一樣):
?
點(diǎn)擊接口,進(jìn)入抓包界面,如下圖:
?
Wireshark抓的包信息量很大,需要進(jìn)行一些過濾操作,才能把有用的信息拿到,紅色標(biāo)注部分輸入過濾規(guī)則,即可過濾出我們需要的一些信息。
Wireshark的過濾規(guī)則,使用的是正則表達(dá)式來寫的。具體可參考:http://wenku.baidu.com/link?url=lpU_NJguXVsiZ1YMTz13b_ngl2xNE--CFh8xChvc5QjisTFV4VhX65ID4TvX5WuaHLX7hRwMfEgTKylnUAdtaOF3rkVF_JfXoEDxjlTgq7i
舉例,如果想過濾域名為“mclick.simba.taobao.com”,可以設(shè)置如下過濾表達(dá)式
過濾host:http &&http.host==”mclick.simba.taobao.com”
如何使用Connectify
如果需要不使用代理,需要建立熱點(diǎn)來用wireshark進(jìn)行抓包。
建立熱點(diǎn)需要用到Connectify。
1.?????? 下載并安裝Connectify
下載地址:
http://softdownload.hao123.com/hao123-soft-online-bcs/soft/C/2013-08-27_ConnectifyInstaller.exe
傻瓜式安裝
2.?????? 配置Connectify
根據(jù)提示:設(shè)置網(wǎng)絡(luò)名稱;網(wǎng)絡(luò)密碼等
配置wireshark,選擇網(wǎng)卡
3.?????? 手機(jī)配置
手機(jī)連接到配置的connectify配置的網(wǎng)絡(luò)上,輸入密碼,即可把電腦作為熱點(diǎn),手機(jī)連接到指定的connectify來源:http://www.blogbus.com/wanping-logs/238827556.html
總結(jié)
以上是生活随笔為你收集整理的fiddler和wireshark工具介绍及对比 - [测试技术知识]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 晚上给车烧纸最晚几点好
- 下一篇: Fiddler 从安装到使用 (crea