本文章轉載于搜狗測試
我們進行客戶端網絡相關的測試時,肯定要更改服務器返回數據進行測試,但頻繁更改線上服務器的數據肯定不現實,即麻煩又有風險,所以就需要我們自己做網絡返回數據了。
自己改網絡返回數據,一般有兩種方法,一種是指向代理服務器,然后在代理服務器上進行數據修改,此時我們使用fiddler;另一種就是更改hosts文件,把服務器指向自己的測試服務器,然后在測試服務器上進行數據修改。
1.使用fiddler的autoResponder
打開fiddler,點擊要自定義網絡返回的條目,點擊右邊工具欄中的Autoresponder,然后點擊頁面中的Add Rule按鈕,此時就會在下面的編輯區顯示剛剛添加的請求。
點擊選中請求,然后編輯器下方就會出現鏈接的屬性設置選項。
此處,上框中是要編輯的請求鏈接,下框是想要給的返回(可預選擇的內容如下),選好之后點擊save按鈕就可以保存了。
常用返回的說明:
上面從200到502的都是既有的網絡返回
Delay:100是設置超時返回時間,單位為毫秒
Redir指的是跳轉到其它的頁面
Find a file:選擇一個返回的本地文件
還有,上框的內容,如果是以EXACT開頭,則指的是精確匹配,也就是說只有完全匹配的鏈接才會執行該條規則;當然還可以使用正則表達式,用以模糊匹配,例如下面:
最后,要檢查如下幾個開關:
Enable automatic responses:這是總開關,如果取消勾選,那么所有設置的自定義返回規則都不生效了
Unmatched requests passthrough:沒有匹配的請求是否放行,如果勾選它,那么所有沒有匹配的請求都會照常工作;如果取消勾選,那么所有沒有匹配的請求都會被攔截不會給任何返回。
至此,通過上面的設置后,就可以讓命中規則的請求url返回指定的內容。
2.使用fiddler中的返回斷點
使用fiddler設置斷點也可以修改response(返回內容)。
2.1.設置請求斷點的原理
Fiddler是個代理、可以捕獲整個session,那么就可以在服務器返回內容之后進行中斷,進而修改內容再放行給客戶端,所以客戶端拿到的就是修改之后的數據了。
2.2.設置返回斷點的三種方法
a)打開Fiddler點擊Rules->Automatic Breakpoint ->After Requests(這種方法會中斷所有會話的返回)
再次點擊Rules->Automatic Breakpoint ->Disabled就可以消除斷點了
b)在命令行中輸入命令:bpafter xxx.xxx。xxx.xxx是想要中斷的請求url。所以這種方法屬于定制斷點。若想消除該斷點,在命令行中輸入命令bpu即可。
c)在auto responder中也可以添加:
2.3.設置返回斷點的應用范圍
上面已經說過了,設置返回斷點并修改可以做客戶端測試,和我們平時使用fiddler的AutoResponder功能上很類似,只不過設置返回斷點的方式比設置AutoResponder更加快捷方便,相當于即時修改返回數據、當場可以看到客戶端的現象。但也由于是即時修改數據,如果操作慢的話,可能會導致客戶端獲取超時失敗。所以需要依照不同的測試場景合理使用這幾種方法。
2.4.設置返回斷點的實例
實例使用一張圖片來說明整個操作過程和方法。
3.使用http測試服務器
http測試服務器,就是實實在在的服務器,上面搭建了http+php服務,只要本地設置了hosts(對于手機來說,必須root才能修改),就可以讓指定的http訪問到自己的服務器上,于是就可以隨意修改了。
3.1.http測試服務器的搭建
http服務器,使用最多的是Linux+Apache,還有linux+nginx,window+IIS也行,但性能上要比Linux差不少,并且涉及windows本身的防火墻,導致外網訪問可能會有問題。
具體搭建方法,大家可以百度或搜狗一下,比較簡單,就不在這里贅述了。
3.2.設置本地hosts
hosts文件是操作系統中,指定域名訪問指定IP的匹配對,windows操作系統中 該文件是在%windir%\system32\drivers\etc,android系統中是在/etc
下面以android系統簡單說明一下如何修改:
手機必須root,方法就不說了,可網上搜索。
使用獲取了最高管理員權限的文件管理應用,打開/etc,然后掛載讀寫操作,然后打開下面的hosts文件
在hosts文件中增加需要綁定的域名和IP,例如:
10.12.131.16 input.shouji.sogou.com
然后保存退出。最好再進入該文件看一下是否修改成功。
3.3.自定制返回內容
經過上面的操作后,凡是發往input.shouji.sogou.com的請求,都會來到10.12.131.16了,所以下面就可以自定制返回內容了:在http服務器工作根目錄中新建各種對應的目錄和文件,就可以被訪問了。
4.其它注意點
如果即想使用http測試服務器,又想使用fiddler抓包,那么可以先設置代理到fiddler上,然后給fiddler所在機器上配置hosts。注意:如果在手機上即設置代理到fiddler,又設置了hosts,那么hosts是不管用的,也就是說代理是繞過hosts工作的。