1. 程式人生 > >基於fiddler的APP抓包及服務端模擬

基於fiddler的APP抓包及服務端模擬

在HTTP介面的測試過程中,一般我們會按照如下的步驟進行:

      1)測試環境的準備

2)HTTP訊息體的構造

3)HTTP訊息的傳送及斷言

如果我們可以拿到專案組的介面文件,並且HTTP後臺服務是可以工作的,那我們的介面測試會非常順利,可以不使用Fiddler工具。

但是,實際情況中,不斷的測試前移,需要我們的介面自動化測試用例在編碼工作還未完成的情況下,就能準備完成。程式碼開發完成之後,直接執行自動化用例。

這種情況下,Fiddler工具就能大顯身手了。本文介紹兩種Fiddler工具的使用場景:

1)在沒有介面文件的情況,使用Fiddler抓包,獲得HTTP後臺介面;

2)在沒有HTTP後臺服務的情況下,使用Fiddler模擬服務端。

1 移動APP下Fiddler 抓包

為了行文及截圖方便,我們使用android模擬器操作,真機的操作步驟一樣:

1)讓手機和PC在同一個區域網下面,如果PC是筆記本,它們連線同一個wifi網路即可

2)找到PC的IP地址,如下圖,執行ipconfig,得到192.168.0.103:

3)在Fiddler工具上點選:Tools->TelerikFiddler Options->connections,在如下的Allow remote computers to connect 的勾打上,記住Fiddler的監聽埠8888,稍後會使用上

4)開啟手機,長按已連線的wifi網路,點選修改網路

5)在代理上面選擇手動,IP填寫上面獲取的192.168.0.103,埠填寫Fiddler的監聽埠8888,之後點選儲存。

6)此時,我們在手機上面,開啟被測試移動APP,在Fiddler上面就可以看到訊息體了。以華為應用市場為例:

我們開啟華為應用市場,點選我的:

擷取的訊息如下:

我們可以清晰的看到通過post介面傳送的訊息包括headers以及body等,以及響應訊息體:

至此,移動APP的前後臺抓包大功告成。

2 使用Fiddler模擬服務端

通過Fldder的AutoResponder可以做到模擬服務端。

首先,我們介紹最簡單的服務模擬方式,即我們有真實響應的情況下,如何模擬服務端。

1)選中我們需要模擬的訊息,也就是第11條:

2)儲存該訊息的響應訊息體,用於我們的樁去回一樣的響應:

3)點選模擬功能的入口AutoResponder,選中Enablerules,以及Unmatched requests passthrough:

4)點選新增一條規則,在最下面的響應訊息下拉框中,選中find a file,指向我們上面儲存的檔案

5)這樣,一條訊息的服務端模擬就完成了。

6)我們使用postman檢驗一下,響應訊息和預期的一樣,並且是在我們本機的樁上響應的。

上面的這個例子,我們使用了精確匹配EXACT,是最簡單的應用。實際上,很多時候,服務端響應的訊息體是需要我們自己去構造的,並且上面的訊息匹配方式是精確匹配,應用面偏窄了些,這些再普及一下自動匹配的一些知識:

關於自動匹配,可以使用的有:

字首為“EXACT:”表示完全匹配(大小寫敏感)

無字首表示基本搜尋,表示搜尋到字串就匹配

字首為“REGEX:”表示使用正則表示式匹配

字首為“REGEX:(?insx)”表示匹配方式其中:

  • i表示不區分大小寫;

  • n表示指定的唯一有效的捕獲是顯式命名或編號的形式;

  • s表示單行模式;

  • x表示空格說明的;

時間關係,今天的分享就到這裡,後續繼續給大家寫一些經驗總結。