天天看點

charles基本使用

文章目錄

      • 安裝
      • 配置
      • 功能
        • 模拟慢速網絡
        • 修改網絡請求内容
        • 給伺服器做壓力測試
        • 修改伺服器傳回内容
        • Map重定向功能
        • Rewrite
        • Breakpoints

安裝

https://www.charlesproxy.com/

線上破解工具

charles基本使用
charles基本使用

配置

charles基本使用
charles基本使用
charles基本使用
charles基本使用
charles基本使用
charles基本使用
charles基本使用
charles基本使用

功能

模拟慢速網絡

在做移動開發的時候,我們常常需要模拟慢速網絡或者高延遲的網絡,以測試在移動網絡下,應用的表現是否正常。Charles 對此需求提供了很好的支援。

在 Charles 的菜單上,選擇 “Proxy”->”Throttle Setting” 項,在之後彈出的對話框中,我們可以勾選上 “Enable Throttling”,并且可以設定 Throttle Preset 的類型。如下圖所示:

charles基本使用

如果我們隻想模拟指定網站的慢速網絡,可以再勾選上圖中的 “Only for selected hosts” 項,然後在對話框的下半部分設定中增加指定的 hosts 項即可。

charles基本使用

修改網絡請求内容

有些時候為了調試伺服器的接口,我們需要反複嘗試不同參數的網絡請求。Charles 可以友善地提供網絡請求的修改和重發功能。隻需要在以往的網絡請求上點選右鍵,選擇 “Edit”,即可建立一個可編輯的網絡請求。如下所示:

charles基本使用

我們可以修改該請求的任何資訊,包括 URL 位址、端口、參數等,之後點選 “Execute” 即可發送該修改後的網絡請求(如下圖所示)。Charles 支援我們多次修改和發送該請求,這對于我們和伺服器端調試接口非常友善,如下圖所示:

charles基本使用

給伺服器做壓力測試

我們可以使用 Charles 的 Repeat 功能來簡單地測試伺服器的并發處理能力,方法如下。

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

charles基本使用

接着我們就可以在彈出的對話框中,選擇打壓的并發線程數以及打壓次數,确定之後,即可開始打壓。

charles基本使用

修改伺服器傳回内容

有些時候我們想讓伺服器傳回一些指定的内容,友善我們調試一些特殊情況。例如清單頁面為空的情況,資料異常的情況,部分耗時的網絡請求逾時的情況等。如果沒有 Charles,要伺服器配合構造相應的資料顯得會比較麻煩。這個時候,使用 Charles 相關的功能就可以滿足我們的需求。

根據具體的需求,Charles 提供了 Map 功能、 Rewrite 功能以及 Breakpoints 功能,都可以達到修改伺服器傳回内容的目的。這三者在功能上的差異是:

  • Map 功能适合長期地将某一些請求重定向到另一個網絡位址或本地檔案。
  • Rewrite 功能适合對網絡請求進行一些正則替換。
  • Breakpoints 功能适合做一些臨時性的修改。

Map重定向功能

Charles 的 Map 功能分 Map Remote 和 Map Local 兩種,顧名思義,Map Remote 是将指定的網絡請求重定向到另一個網址請求位址,Map Local 是将指定的網絡請求重定向到本地檔案。

在 Charles 的菜單中,選擇 “Tools”->”Map Remote” 或 “Map Local” 即可進入到相應功能的設定頁面。

charles基本使用
charles基本使用

對于 Map Local 功能,我們需要填寫的重定向的源位址和本地的目标檔案。對于有一些複雜的網絡請求結果,我們可以先使用 Charles 提供的 “Save Response…” 功能,将請求結果儲存到本地(如下圖所示),然後稍加修改,成為我們的目标映射檔案。

charles基本使用

以将10.6版本點選檢查更新後傳回的version.xml中版本号改為10.7版本,使得點選檢查更新可提示更新

  1. 點選檢查更新,将傳回的version_zh-CN.xml儲存到本地Save Response…
  2. 本地打開xml檔案,修改版本号 (由10.6——10.7)
  3. 在Charles中菜單欄 Map Local…功能 Add添加 将version_zh-CN.xml位址指向本地修改的xml檔案
  4. 配置完成後,再次在程式中點選檢查更新,便可提示更新

    相同的方法,我們也可用于修改線上參數配置及其他的伺服器傳回

    charles基本使用

Rewrite

Rewrite 功能功能适合對某一類網絡請求進行一些正則替換,以達到修改結果的目的。

例如,我們的用戶端有一個 API 請求是獲得使用者昵稱,而我目前的昵稱是 “tangqiaoboy”,如下所示:

charles基本使用

我們想試着直接修改網絡傳回值,将 tangqiaoboy 換成成 iosboy。于是我們啟用 Rewrite 功能,然後設定如下的規則

charles基本使用

完成設定之後,我們就可以從 Charles 中看到,之後的 API 獲得的昵稱被自動 Rewrite 成了 iosboy,如下圖所示

charles基本使用

Breakpoints

上面提供的 Rewrite 功能最适合做批量和長期的替換,但是很多時候,我們隻是想臨時修改一次網絡請求結果,這個時候,使用 Rewrite 功能雖然也可以達到目的,但是過于麻煩,對于臨時性的修改,我們最好使用 Breakpoints 功能。

Breakpoints 功能類似我們在 Xcode 中設定的斷點一樣,當指定的網絡請求發生時,Charles 會截獲該請求,這個時候,我們可以在 Charles 中臨時修改網絡請求的傳回内容。

下圖是我們臨時修改擷取使用者資訊的 API,将使用者的昵稱進行了更改,修改完成後點選 “Execute” 則可以讓網絡請求繼續進行

charles基本使用
需要注意的是,使用 Breakpoints 功能将網絡請求截獲并修改過程中,整個網絡請求的計時并不會暫停,是以長時間的暫停可能導緻用戶端的請求逾時。

繼續閱讀