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軟體測試小棧

往期內容寵幸

叮—這有一打讓你666的測試終極資料包,請查收!

打開PyCharm永久激活的這兩個錦囊,再也不用擔心寫程式碼的時候讓我付費了!

測試面試題集-測試基礎理論

測試面試題集-測試用例設計:登錄、購物車、QQ收藏表情、轉賬、充值、提現

測試面試題集-生活物品測試:杯子、傘、鋼筆、桌子

Selenium自動化測試-1.selenium介紹及環境安裝

Selenium自動化測試-2.瀏覽器基本操作

Selenium自動化測試-3.元素定位(1)

Selenium自動化測試-3.元素定位(2)

Selenium自動化測試-3.元素定位(3)

Selenium自動化測試-4.By定位及如何確定元素唯一

Selenium自動化測試-5.腳本錄製神器Katalon Recorder

Selenium自動化測試-6.滑鼠鍵盤操作

Selenium自動化測試-7.獲取元素屬性資訊

Selenium自動化測試-8.iframe處理

速看,APP測試之ADB最全指南!

APP測試之Monkey壓力測試(一)

APP測試之Monkey壓力測試(二)