Charles使用介紹

Charles是常用的網(wǎng)絡封包截取工具,在做移動開發(fā)和測試時常常需要截取網(wǎng)絡封包來分析。

Charles是通過將自己設置成系統(tǒng)的網(wǎng)絡訪問代理服務器,使得所有的網(wǎng)絡訪問請求都通過它來完成,從而實現(xiàn)了網(wǎng)絡封包的截取和分析, 更多詳細內(nèi)容移步官方網(wǎng)站:https://www.charlesproxy.com/

Charles 雖然是收費軟件,但即使不購買也能長期使用,并且功能上不會缺斤短兩。唯一要付出的代價是每次使用時間不能超過 30 分鐘,并且啟動時將會有 10 秒種的延時。

低調(diào)低調(diào) 破解方法 低調(diào)低調(diào)

本文旨在介紹下常用的功能,其他更多的功能依據(jù)需求自行摸索。

Charles在移動端測試的主要應用

一、Charles抓包HTTP、HTTPS

1、安裝根證書:


image.png

Tips: 安裝根證書,默認不信任,需要到鑰匙串里,點擊信任:


image.png

將移動設備和本機置于同一個網(wǎng)絡下,在移動設備上的網(wǎng)絡中添加代理 -> 手動 -> 填寫主機名和端口。一般來說,Charles默認的端口是8888,在Proxy -> Proxy Settings可設置。主機名就是本機的IP的地址,在Charles -> Help -> Local IP Address可查看。
image.png

一般初次連接時會提示是否允許進行連接,點擊allow允許就好了。如果不小心點擊拒絕,那么有兩種方法,第一種重啟Charles;第二種,Proxy -> Access Contro Settings中添加移動設備的IP地址。

image.png

2、Charles抓移動設備HTTPS請求
點開 Help -> SSL Prox -> Install Charles Root Certificate on a Mobile Devices or Remote Browser

image.png

提示很明顯,先讓設備連上Chalres,然后在設備上用系統(tǒng)瀏覽器訪問chls.pro/ssl,然后會自動下載一個證書,選擇安裝證書。之后便可以抓取https協(xié)議的包了。

通過手機內(nèi)證書管理程序,從設備存儲空間安裝


image.png

之后在需要的請求上,點擊Enable SSL Proxy即可, 或者在Proxy -> SSL Proxy Settings中勾選上Enable,并且添加指定host。


image.png

例如抓取全部https,host輸入通配符“ * ”,port填443。


image.png
3、Android 7.0 HTTPS抓包

Android 7.0以上版本,Google更新了網(wǎng)絡安全性配置,不再信任用戶導入的CA根證書。所以即便是安裝了證書,也得不到系統(tǒng)的信任,需要在應用中添加信任才行。參考:http://confluence.mobvista.com/pages/viewpage.action?pageId=7969125

二、Charles過濾請求
一般來說,我們只關(guān)心特定HOST的請求。當我們僅想監(jiān)控這些請求時,可以使用Charles的過濾功能。

1、Record Settings設置include/exclude
Proxy -> Recording Setttings include:需要監(jiān)控的host。如果列表為空時,默認監(jiān)控所有請求 exclude:不需要監(jiān)控的host

image.png

2、Filter
Filter一欄中輸入需要要過濾的host或者關(guān)鍵字。也可以在勾選上Foucsed,并制定focus哪些host。


image.png

3、Repeat
可以使用 Charles 的 Repeat 功能來簡單地測試服務器的并發(fā)處理能力,方法如下。

  • 我們在想打壓的網(wǎng)絡請求上(POST 或 GET 請求均可)右擊,然后選擇 「Repeat Advanced」菜單項,如下所示:


    image.png

在彈出的對話框中,選擇打壓的并發(fā)線程數(shù)以及打壓次數(shù),確定之后即可執(zhí)行


image.png

4、BlackList&WhiteList
黑名單表示對名單內(nèi)的所有請求做過濾


image.png

白名單表示僅對名單內(nèi)的請求做響應


image.png

三、Charles網(wǎng)速模擬
1、Throttle Setting
Charles內(nèi)置幾種網(wǎng)絡模型可直接使用,也可自定義來滿足特定需求。 當然更可以只針對特定host模擬網(wǎng)速,只需要勾選上Only for select hosts就ok了。

image.png

四、Charles修改請求及返回值
移動端測試中,Charles最常用的應該就是修改請求返回值了,有幾種方式可以實現(xiàn)。

1、breakpoints
像斷點一樣,當執(zhí)行到指定規(guī)則鏈接時,觸發(fā)breakpoints。即可以在請求到服務端前中斷,也可以在返回到客戶端前中斷。在這個過程中便可以修改Request或者ResponseR。不過值得注意的是,在移動端的測試中,使用breakpoints會大概率導致客戶端的請求超時。因為手動修改是需要花時間的,所以一般很少使用斷點的操作來修改請求和返回參數(shù)。

image.png

2、重定向 -- Map Local、Map Remote
顧名思義,Map Remote 是將指定的網(wǎng)絡請求重定向到另一個網(wǎng)址請求地址,Map Local 是將指定的網(wǎng)絡請求重定向到本地文件。 Map Remote簡單的實例:


image.png

Map Local簡單的實例:


image.png

3、rewrite
Rewrite 功能功能適合對某一類網(wǎng)絡請求進行一些正則替換。 Rewrite功能很強大,能很方便的在各種測試環(huán)境切來切去,就像圖中列表所展示。


image.png

具體功能不做詳細解釋,可以在使用中根據(jù)實際場景進行相應的修改。


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容