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收藏表情、轉賬、充值、提現