Charles使用手冊
- Charles使用背景
- Charles安裝下載下傳
- Charles主要功能
- Charles實用功能及配置
-
- 将Charles設定為系統代理
- 截取移動裝置上的網絡請求
-
- 檢視本地IP位址
- 配置手機代理
- 過濾網絡請求
-
- 兩種封包視圖
- 模拟慢速網絡
- 給伺服器做壓力測試
- 修改伺服器傳回資料
- 修改網絡請求内容
- mock資料
Charles使用背景
- 開發網頁我們可以直接debug模式檢視請求接口請求request和傳回資料responses,但是在開發移動端的時候沒有網頁,我們就可以使用Charles來抓取請求接口;
- 在測試過程中容易遇到服務端和用戶端都說自己是寫的代碼是沒有問題的,這個時候就可以通過抓取工具檢視用戶端請求資料以及服務端傳回的資料進行分析問題;
Charles安裝下載下傳
百度有很多教程,移步去搜搜✌️
如果出現下載下傳之後打開每30分彈窗提示關閉一次,這是因為下載下傳的Charles沒有破解,破解辦法有兩種:
1、可以百度找密鑰,填寫密鑰激活進行破解;
2、下載下傳破解包,然後找到Charles的安裝目錄,打開lib檔案夾,替換charles.jar檔案
Charles主要功能
- 支SSL代理,可以截取分析SSL的請求
- 支援流量控制。可以模拟慢速網絡以及等待時間較長的請求
- 支援AJAX調試。可以自動将json或xml資料格式化,友善檢視。
- 支援AMF調試。可以将Flash Remoting或Flex Remoting資訊格式化,友善檢視
- 支援重發網絡請求,友善後端調試
- 支援修改網絡請求參數
- 支援網絡請求的截獲并動态修改
Charles實用功能及配置
将Charles設定為系統代理
-
配置
選中Proxy-》macOS Proxy
-
操作
勾選代理之後,可以将系統本地發出的請求都能被截取下來;
截取移動裝置上的網絡請求
檢視本地IP位址
mac:Help -》 Local IP Address -》 ent0
windowns:打開cmd視窗輸入ipconfig指令進行檢視;
配置手機代理
-
作用
這個手機用戶端的所有http請求都會被Charles代理,友善檢視用戶端http請求
-
配置
1)打開手機wifi連接配接,連接配接,修改網絡代理模式為手動,輸入伺服器和端口号代理存儲,伺服器ip為上面檢視的本地IP位址,端口号檢視Proxy -》Proxy Setting -》 HTTP Proxy 中的Port;
2)打開手機浏覽器,輸入chls.pro/ssl下載下傳Charles證書;
3)打開要調試的app,請求發送到Charles,驗證是否允許彈窗,點選Allow;
a. 點選Allow之後,在Proxy -》Access Control Setting裡檢視可以通路此代理伺服器的清單;
b. 如過不小心點選了拒絕,解決辦法:手動添加手機IP/MAC位址到允許通路清單;重新開機Charles,手機再次通路時會彈窗驗證是否允許
4)如果不想每換一個手機都進行驗證,可以配置允許所有手機通路,加入0.0.0.0/0(IPV4)或::/0(IPV6)
5)請求接口可以檢視接口請求資料和傳回資料
6)修改資料:右鍵接口,點選Compose,可以修改請求參數和URL
過濾網絡請求
使用Charles代理之後會抓取到你的所有請求,太多看起來不太容易,這時我們可以把我們需要關注的請求過濾出來,過濾網絡請求有三種方法:
1)在封包視圖的Filter欄輸入需要過濾出來的關鍵字;
2)在想要過濾的網絡請求上右鍵,選擇「Focus」之後,在「Filter」一欄勾選Focussed一項;
3)在Charles菜單欄中「Proxy -> Recording Setting」 選擇「Include」,選擇添加一個項目,填入需要監控的協定,主機位址以及端口号,這樣就可以直接截取目标網站的封包。
以上是過濾網絡請求的三種方式,其中1,2是臨時過濾,3是固定過濾
兩種封包視圖
- Structure:是将網絡請求按照通路的域名進行分類;
- Sequence:是将網絡請求按照通路時間進行排序;
模拟慢速網絡
-
使用場景
在做移動端開發時,我們常常需要模拟慢速網絡或者高延遲網絡,以測試在移動網絡下應用表現是否正常。
-
配置
Proxy -> Throttle Setting -> Enable Throttling,在Throttle preset欄設定對應的網速,即可模拟慢速網絡;
模拟指定網絡的慢速網絡,可以再勾選上圖中的“Only for selected hosts”,添加指定的host;
給伺服器做壓力測試
Charles的repeat功能可以簡單的測試服務起的并發處理能力;
-
步驟
選擇想要打壓的網絡請求,右鍵,點選repeat - advanced菜單欄進行選擇打壓的并發線程數和打壓次數進行打壓,concurrency是并發打壓,iterations是疊代次數。
修改伺服器傳回資料
-
使用背景
有時候我們想讓伺服器傳回指定的内容,友善調試某些異常case。例如:頁面為空,資料異常等情況;
Charles的map,rewrite,breakpoints功能均可實作;
修改網絡請求内容
-
使用背景
為了調試伺服器接口,需要反複嘗試不同參數的網絡請求。Charles 可以友善地提供網絡請求的修改和重發功能
-
步驟
選擇要修改的網絡請求,點選首頁面“筆”狀的按鈕;
可修改内容包括: URL 位址、端口、參數等,之後點選 “Execute” 即可發送該修改後的網絡請求;
Charles 支援多次修改和發送該請求,這對于伺服器端調試接口非常友善;
mock資料
我們可以通過map local将本地的接口檔案進行mock,在測試中請求該接口時,将請求mock的接口資料;