本文章轉(zhuǎn)載于搜狗測試
我們進(jìn)行客戶端網(wǎng)絡(luò)相關(guān)的測試時(shí)泵肄,肯定要更改服務(wù)器返回?cái)?shù)據(jù)進(jìn)行測試,但頻繁更改線上服務(wù)器的數(shù)據(jù)肯定不現(xiàn)實(shí)淑翼,即麻煩又有風(fēng)險(xiǎn)腐巢,所以就需要我們自己做網(wǎng)絡(luò)返回?cái)?shù)據(jù)了。
自己改網(wǎng)絡(luò)返回?cái)?shù)據(jù)玄括,一般有兩種方法冯丙,一種是指向代理服務(wù)器,然后在代理服務(wù)器上進(jìn)行數(shù)據(jù)修改,此時(shí)我們使用fiddler胃惜;另一種就是更改hosts文件泞莉,把服務(wù)器指向自己的測試服務(wù)器,然后在測試服務(wù)器上進(jìn)行數(shù)據(jù)修改船殉。
1.使用fiddler的autoResponder
打開fiddler鲫趁,點(diǎn)擊要自定義網(wǎng)絡(luò)返回的條目,點(diǎn)擊右邊工具欄中的Autoresponder利虫,然后點(diǎn)擊頁面中的Add Rule按鈕挨厚,此時(shí)就會在下面的編輯區(qū)顯示剛剛添加的請求。
點(diǎn)擊選中請求糠惫,然后編輯器下方就會出現(xiàn)鏈接的屬性設(shè)置選項(xiàng)疫剃。
此處,上框中是要編輯的請求鏈接硼讽,下框是想要給的返回(可預(yù)選擇的內(nèi)容如下)巢价,選好之后點(diǎn)擊save按鈕就可以保存了。
常用返回的說明:
上面從200到502的都是既有的網(wǎng)絡(luò)返回
Delay:100是設(shè)置超時(shí)返回時(shí)間固阁,單位為毫秒
Redir指的是跳轉(zhuǎn)到其它的頁面
Find a file:選擇一個(gè)返回的本地文件
還有蹄溉,上框的內(nèi)容,如果是以EXACT開頭您炉,則指的是精確匹配柒爵,也就是說只有完全匹配的鏈接才會執(zhí)行該條規(guī)則;當(dāng)然還可以使用正則表達(dá)式赚爵,用以模糊匹配棉胀,例如下面:
最后,要檢查如下幾個(gè)開關(guān):
Enable automatic responses:這是總開關(guān)冀膝,如果取消勾選唁奢,那么所有設(shè)置的自定義返回規(guī)則都不生效了
Unmatched requests passthrough:沒有匹配的請求是否放行,如果勾選它窝剖,那么所有沒有匹配的請求都會照常工作麻掸;如果取消勾選,那么所有沒有匹配的請求都會被攔截不會給任何返回赐纱。
至此脊奋,通過上面的設(shè)置后,就可以讓命中規(guī)則的請求url返回指定的內(nèi)容疙描。
2.使用fiddler中的返回?cái)帱c(diǎn)
使用fiddler設(shè)置斷點(diǎn)也可以修改response(返回內(nèi)容)诚隙。
2.1.設(shè)置請求斷點(diǎn)的原理
Fiddler是個(gè)代理、可以捕獲整個(gè)session起胰,那么就可以在服務(wù)器返回內(nèi)容之后進(jìn)行中斷久又,進(jìn)而修改內(nèi)容再放行給客戶端,所以客戶端拿到的就是修改之后的數(shù)據(jù)了。
2.2.設(shè)置返回?cái)帱c(diǎn)的三種方法
a)打開Fiddler點(diǎn)擊Rules->Automatic Breakpoint ->After Requests(這種方法會中斷所有會話的返回)
再次點(diǎn)擊Rules->Automatic Breakpoint ->Disabled就可以消除斷點(diǎn)了
b)在命令行中輸入命令:bpafter xxx.xxx地消。xxx.xxx是想要中斷的請求url炉峰。所以這種方法屬于定制斷點(diǎn)。若想消除該斷點(diǎn)脉执,在命令行中輸入命令bpu即可疼阔。
c)在auto responder中也可以添加:
2.3.設(shè)置返回?cái)帱c(diǎn)的應(yīng)用范圍
上面已經(jīng)說過了,設(shè)置返回?cái)帱c(diǎn)并修改可以做客戶端測試适瓦,和我們平時(shí)使用fiddler的AutoResponder功能上很類似竿开,只不過設(shè)置返回?cái)帱c(diǎn)的方式比設(shè)置AutoResponder更加快捷方便,相當(dāng)于即時(shí)修改返回?cái)?shù)據(jù)玻熙、當(dāng)場可以看到客戶端的現(xiàn)象否彩。但也由于是即時(shí)修改數(shù)據(jù),如果操作慢的話嗦随,可能會導(dǎo)致客戶端獲取超時(shí)失敗列荔。所以需要依照不同的測試場景合理使用這幾種方法。
2.4.設(shè)置返回?cái)帱c(diǎn)的實(shí)例
實(shí)例使用一張圖片來說明整個(gè)操作過程和方法枚尼。
3.使用http測試服務(wù)器
http測試服務(wù)器贴浙,就是實(shí)實(shí)在在的服務(wù)器,上面搭建了http+php服務(wù)署恍,只要本地設(shè)置了hosts(對于手機(jī)來說崎溃,必須root才能修改),就可以讓指定的http訪問到自己的服務(wù)器上盯质,于是就可以隨意修改了袁串。
3.1.http測試服務(wù)器的搭建
http服務(wù)器,使用最多的是Linux+Apache呼巷,還有l(wèi)inux+nginx囱修,window+IIS也行,但性能上要比Linux差不少王悍,并且涉及windows本身的防火墻破镰,導(dǎo)致外網(wǎng)訪問可能會有問題。
具體搭建方法压储,大家可以百度或搜狗一下鲜漩,比較簡單,就不在這里贅述了渠脉。
3.2.設(shè)置本地hosts
hosts文件是操作系統(tǒng)中宇整,指定域名訪問指定IP的匹配對,windows操作系統(tǒng)中 該文件是在%windir%\system32\drivers\etc芋膘,android系統(tǒng)中是在/etc
下面以android系統(tǒng)簡單說明一下如何修改:
手機(jī)必須root,方法就不說了,可網(wǎng)上搜索为朋。
使用獲取了最高管理員權(quán)限的文件管理應(yīng)用臂拓,打開/etc,然后掛載讀寫操作习寸,然后打開下面的hosts文件
在hosts文件中增加需要綁定的域名和IP胶惰,例如:
10.12.131.16 input.shouji.sogou.com
然后保存退出。最好再進(jìn)入該文件看一下是否修改成功霞溪。
3.3.自定制返回內(nèi)容
經(jīng)過上面的操作后孵滞,凡是發(fā)往input.shouji.sogou.com的請求,都會來到10.12.131.16了鸯匹,所以下面就可以自定制返回內(nèi)容了:在http服務(wù)器工作根目錄中新建各種對應(yīng)的目錄和文件坊饶,就可以被訪問了。
4.其它注意點(diǎn)
如果即想使用http測試服務(wù)器殴蓬,又想使用fiddler抓包匿级,那么可以先設(shè)置代理到fiddler上,然后給fiddler所在機(jī)器上配置hosts染厅。注意:如果在手機(jī)上即設(shè)置代理到fiddler痘绎,又設(shè)置了hosts,那么hosts是不管用的肖粮,也就是說代理是繞過hosts工作的孤页。