fiddler工具在移動app測試中的使用
fiddler工具是基於web代理技術的抓包工具
fiddler抓包原理
- app ------> fiddler ------> 服務器 ------> fiddler ------> app
- fiddler工具支持的是http協議、https協議、websocket協議的數據的抓取,不是所有的app和服務器之間的交互數據都能抓取到,比如手游
- fiddler使用.net開發,需要.net framework的支持,尤其是win7
fiddler環境配置
選項設置
- Fiddler listens on port 監聽端口(默認8888)
- Allow remote computers to connect 允許遠端電腦連接(包括手機/模擬器)
- capture FTP requests 抓取FTP請求
- Reuse client connections 重用客戶端連接
- Reuse server connections 重用服務端連接
- Act as system proxy on startup 啟動時作為系統代理
- Monitor all connections 監控所有的連接
HTTPS設置
- Capture HTTPS CONNECTS 抓取HTTPS連接
- Decrypt HTTPS traffic 解密HTTPS通信
- ignore server certificate errors(unsafe) 忽略服務證書錯誤(不安全)
- Check for certificate revocation 檢查證書取消
- Trust Root Certificate 信任根證書
- Export Root Certificate to Desktop 導出根證書到桌面
- Reset ALL Certificates 重置所有證書
修改fiddler的設置后,重啟一下fiddler軟件保證所有的修改生效
對手機/模擬器進行證書的安裝和代理設置
-
使用手機瀏覽器訪問Fiddler所在的電腦的【ip地址:fillder端口號】
下載證書,若手機沒有密碼,會提示你設置密碼
-
證書安裝后,需要在wifi上設置,用fiddler進行網絡代理,必須要設置
重點補充:
① 抓真機的手機包,你的Fiddler所在的電腦,必須切換成wifi網 絡,並且手機和電腦使用同一個wifi網絡
② 因為手機要被Fiddler抓包,需要把代理服務器調成Fiddler,一旦離開公司,你的wifi就斷掉了,但是你的網絡代理仍然是Fiddler,所在出現了,你發現你手機不能 上網的情況,你需要把網絡代替取消,讓你的手機恢復到4G網絡
關於虛擬機的注意事項
① 物理機上Fiddler <======> 物理機上手機模擬器
② 虛擬機上Fiddler <======> 虛擬機上手機模擬器
③ 物理機上Fiddler <======> 虛擬機上手機模擬器
想要連通數據,首先是虛擬機和物理機是網絡相互訪問的,如果兩個不互通,需要設置虛擬機的網絡適配器,將NAT模式換成橋接模式,“復制物理...”可以勾選上
fiddler測試App時需要使用到的重點功能
Hosts設置和Inspectors數據分析器
hosts
hosts設置功能可以將app的host(網址或域名)隨意綁定到指定的服務器上(如:開發環境、測試環境、預生產環境等)
需要綁定過去地址寫在前面,當中空一格,被轉移的地址寫在后面,最后不可以有空格。
使用完畢后務必關閉(反選)HOSTS,不然會影響抓其他app數據包
使用HOSTS功能的同時,必須保證fiddler是開啟的,並且網絡代理設置成fiddler
inspector
進入Inspector模塊分上下兩部分
上半部分對應的是app發往服務器的“請求數據”
下半部分對應的是服務器回給app的“響應數據”,響應數據主要看json格式
Filters功能
數據包列表的數據太多,用filters過濾器功能
AutoResponder接口數據模擬器(擋板測試)
模擬各種測試數據,例如:異常數據、虛擬數據等,用於不同的測試場景
思考
購物車數量的單點功能我們如何測試?
思路
如果想測試購物車有1000件商品,就會發現比較麻煩,需要在后台去構造1000件商品。為了更方便地開展測試,可以使用AutoResponder模塊的功能,模擬出假的服務器響應數據(最佳解決方案,現在外面很多叫它“擋板測試”)
例如:
9
99
999
-1
漢字
特殊字符
操作
(提前准備)加入一個商品到購物車,購物車數量變成1
(抓包)點擊購物車按鈕,將抓到購物車的數據,找到購物車數量的數據
右鍵數據包->Save->Response->Entire Response,保存整個服務器響應數據文件到本地
使用AutoResponder
(點擊【Add Rule】就可以添加規則了)
注意事項
反復修改本地的服務器響應數據文件,反復在APP界面上去觸發購物車接口,我們可以發現每次我們都使用的是“模擬的數據”
當不使用的時候,務必記得反選Enable rules,關閉AutoResponder功能,即:
這里一定要注意,上圖中的Unmatched requests passthrough一定要勾上,因為這個勾上的含義代表着,規則只針對當前接口有效