Charles破解安裝及基本使用
- 2019 年 11 月 14 日
- 筆記
——————·今天距2020年50天·——————
這是ITester軟件測試小棧第77次推文
一、Charles簡介
1.Charles是一款代理服務器,通過成為電腦或者瀏覽器的代理,而後截取請求和請求結果達到抓包目的。
2.Charles是用Java寫的,能夠在Windows,Mac,Linux上使用。
3.Charles支持抓取http、https協議的請求,不支持socket。
4.Charles會自動配置IE瀏覽器和工具的代理設置,打開工具就已經是抓包狀態。
5.Charles能夠讓開發者查看所有網絡和機器之間的HTTP流量情況,包括請求、響應、HTTP頭信息(包含cookies和緩存等),可以檢查HTML、CSS和RSS內容是否標準,用於網頁的開發和調試等。
二、Charles主要用途
1.支持SSL(Secure Sockets Layer 安全套件層)代理,可以截取分析SSL請求。
2.支持流量控制,可以模擬慢速網絡以及等待時間(Latency)較長的請求。
3.支持重髮網絡請求,方便後端調試。
4.支持修改網絡請求參數(客戶端向服務器發送時,可以修改後再轉發出去)。
5.支持網絡請求的截獲並動態修改。
6.支持AJAX調試,可以自動將json或xml數據格式化,方便查看。
7.支持AMF調試,可以將Flash Remoting 或 Flex Remoting信息格式化,方便查看。
8.檢查HTML、CSS和RSS內容是否符合W3C標準。
9.支持模擬慢速網絡,主要是模仿手機2G/3G/4G 的訪問流程。
10.支持本地映射和遠程映射,比如可以把線上資源映射到本地某個文件夾下,這樣可以處理一些特殊情況下的 bug 和線上調試(網絡的 css,js 等資源用的是本地代碼,可本地隨便修改,數據之類是線上環境,方便在線調試);
11.可以抓手機端訪問的資源(如果是配置 HOST 的環境,手機可以借用 host 配置進入測試環境)。
三、Charles原理
Charles相當於一個插在服務器和客戶端之間的「過濾器」,當客戶端向服務器發起請求的時候,先到Charles 進行過濾,然後Charles再把最終的數據發送給服務器。

注意:此時 Charles 發給服務器的數據,不一定是客戶端請求的數據;Charles 在接到客戶端的請求時可以自由的修改數據,甚至可以直接 Block 客戶端發的請求。
服務器接收請求後的返回數據,也會先到Charles,經過Charles過濾後再發給客戶端。同理,客戶端接收的數據,不一定就是服務器返回的數據,而是Charles給的數據;正因為上面的原理,所以Charles能實現的功能,對前端開發者來說非常有吸引力,相當於請求和響應都可控,而且Charles為了控制更加方面,提供了很多簡潔的操作。
三、Charles常用功能
1.過濾網絡請求
2.模擬慢速網絡
3.修改網絡請求內容
4.給服務器做壓力測試
四、Charles破解安裝
相對於Wireshark,Fiddler,HttpWatch等抓包工具,Charles更加簡單明了。
Charles 是收費軟件,可以免費試用 30 天。試用期過後,未付費的用戶仍然可以繼續使用,但是每次使用時間不能超過 30 分鐘,並且啟動時將會有 10 秒種的延時。因此,該付費方案對用戶算相當友好的,即使長期不付費,也能使用完整的軟件功能。只是當需要長時間進行封包調試時,會因為 Charles 強制關閉而遇到影響。
(目前最新版本是 V4.5.4 ,CharlesV4.5.4安裝包及對應破解補丁jar包下載可在ITester軟件測試小棧後台回復「Charles」獲取。)
破解安裝步驟:
1.安裝Charles前先裝好Java環境;
2.點擊charles-proxy-4.5.4.msi執行安裝,若安裝後提示the error code is 2503。

解決辦法:打開任務管理器 ->文件->運行新任務-> 輸入【程序安裝全路徑+後綴名】->勾選「以系統管理權限創建此任務」,如圖所示:

3.破解Charles:下載安裝Charles後,將破解補丁jar包粘貼到charles的lib文件下,然後將原來命名為charles.jar文件替換掉即可;
macOS:/Applications/Charles.app/Contents/Java/charles.jar
Windows: C:Program FilesCharleslibcharles.jar(默認安裝在C盤,否則找到自己安裝的對應目錄)

五、Charles抓包配置
將 Charles 設置成系統代理:選擇菜單中的 「Proxy」 -> 「Mac OS X Proxy/windows proxy」 來將 Charles 設置成系統代理。
六、Charles常用功能介紹
(1)過濾網絡請求
通常情況下,我們需要對網絡請求進行過濾,只監控向指定目錄服務器上發送的請求。對於這種需求,有以下幾種辦法:
方法一:在主界面的中部的 Filter 欄中填入需要過濾出來的關鍵字。例如微信公眾平台的地址是:https://mp.weixin.qq.com , 那麼只需要在 Filter 欄中填入weixin 即可。

方法二:在 Charles 的菜單欄選擇 「Proxy」–>「Recording Settings」,然後選擇 Include 欄,選擇添加一個項目,然後填入需要監控的協議,主機地址,端口號。這樣就可以只截取目標網站的封包了。如下圖所示:

通常情況下,我們使用方法一:做一些臨時性的封包過濾,使用方法二:做一些經常性的封包過濾。
方法三:在想過濾的網絡請求上右擊,選擇 「Focus」,之後在 Filter 一欄勾選上 Focussed 一項。
(2)模擬慢速網絡
在做移動開發的時候,我們常常需要模擬慢速網絡或者高延遲的網絡,以測試在移動網絡下,應用的表現是否正常,Charles 對此提供了很好的支持。
在 Charles 的菜單上,選擇 「Proxy」–>「Throttle Setting」 項,在之後彈出的對話框中,我們可以勾選上 「Enable Throttling」,並且可以設置 Throttle Preset 的類型。如下圖所示:

如果我們只想模擬指定網站的慢速網絡,可以再勾選上圖中的 「Only for selected hosts」 項,然後在對話框的下半部分設置中增加指定的 hosts 項即可。
(3)修改網絡請求內容
有些時候為了調試服務器的接口,我們需要反覆嘗試不同參數的網絡請求。Charles 可以方便地提供網絡請求的修改和重發功能。
1.在相應的網絡請求上點擊右鍵,選擇 「Breakpoints」;
2.重新執行這個請求;
3.點擊edit,編輯請求,點擊execute;
4.進入編輯響應頁面,點擊execute。
5.查看手機端響應結果。
注意:compose也能達到相同效果,但僅針對當前此次請求。而打了斷點,每次發送這個請求,都會要求去編輯。
(4)給服務器做壓力測試
我們可以使用 Charles 的 Repeat 功能來簡單地測試服務器的並發處理能力,方法如下:
我們在想打壓的網絡請求上(POST 或 GET 請求均可)右擊,然後選擇 「Repeat Advanced」菜單項,如下所示:

可以發現該請求的處理時間,是隨着迭代次數的增加和並發數的增加而增加的。
最後是今天的分享:Charles V4.5.4安裝包及對應破解補丁jar包
ITester軟件測試小棧今日分享
獲取內容
Charles安裝包及對應破解補丁jar包
領取方式
微信公眾號後台回復:Charles
有圖有真相

以上
That's all
ITester軟件測試小棧
往期內容寵幸
打開PyCharm永久激活的這兩個錦囊,再也不用擔心寫代碼的時候讓我付費了!
測試面試題集-測試用例設計:登錄、購物車、QQ收藏表情、轉賬、充值、提現