Charles抓包工具快速入門

爱老的虎油發表於2024-04-15

目標:

  1. 能夠用charles分析前後端問題
  2. 能夠用charles模擬弱網測試環境
  3. 能夠用charles的斷點構建異常的測試場景

工具簡介

是什麼

基於HTTP協議的代理伺服器,透過成為電腦或者瀏覽器的代理,擷取請求和請求結果達到分析抓包的目的。
特點:跨平臺、半免費(免費版和收費版)

工作原理

前置步驟

  1. 執行charles並配置代理
  2. 在客戶端上面需要配置代理

步驟

  1. 客戶端傳送請求
  2. charles接收後發給服務端
  3. 服務端返回請求結果給charles
  4. charles轉發給客戶端

image

主要功能

  • 支援HTTP以及HTTPS代理
  • 支援流量控制(可以做弱網環境測試)
  • 支援介面併發請求(可以做一些簡單的效能/壓力測試)
  • 支援重發網路請求(可以做簡單介面測試)
  • 支援斷點除錯

優點

和Fiddler對比的優點

  • 支援linux、macos
  • 支援按照域名和按照介面檢視報文,簡潔明瞭
  • 支援反向代理
  • 網路限速可以選擇網路型別
  • 可以解析AMF協議

安裝與配置

安裝

charles下載安裝教程詳細講解(抓包)-CSDN部落格

元件介紹

頁面佈局

image

主導航欄

image

請求導航欄

image

請求資料欄

image

代理設定

Charles配置代理

image

客戶端配置代理

Windows(谷歌瀏覽器為例)

image

image

注:在charles中,可以使用選單欄中help>>>local ip address檢視本機ip地址

MacOS

常規方法
image

image

image

快捷設定
image

IOS代理設定

  1. 在IOS手機中選擇“設定”>>>“無線區域網”
  2. 點選已連線的無線網路名稱
  3. 在HTTP代理的配置代理中選擇“手動'
  4. 輸入伺服器P地址及端點,點選“儲存”

Android手機代理設定

  1. 在Android.手機中選擇“設定”>>>“WLAN”
  2. 長按已連線的無線網路名稱,點選“修改網路
  3. 勾選“顯示高階選項”
  4. 在代理選擇項中選擇“手功”
  5. 輸入伺服器P地址及埠,點選“儲存”

訪問控制

場景1:某IP地址在IP Range中,該IP地址可以訪問網路
場景2:某IP不在IP Range中,勾選了Prompt to allow unauthorized connections,則當該IP地址訪問網路的時候,會提示確認彈窗
場景3:某IP不在IP Range中,沒有勾選Prompt to allow unauthorized connections,則預設該IP不可訪問網路
image

案例

抓包分析問題

測試過程中經常會遇到定位問題是前端還是後端的場景,這個時候可以透過抓包工具Charles,透過對抓取到的報文進行分析,從而定位問題
抓包分析的步驟如下:

  1. Charles代理配置
  2. 客戶端代理配置
  3. 操作客戶端軟體
  4. 分析請求資料

舉個例子:在人事管理系統中修改員工的資訊時,如果員工姓名超長
會產生以下兩個問題
問題一:會提示“系統繁忙”
問題二:會顯示兩次提示資訊
經過抓包分析,後臺響應報文只有一次返回,返回資訊為“系統繁忙”,所以問題一可以定位為後臺問題,後臺返回提示資訊不夠友好,問題二可以定位為前端問題,因為後臺只返回了一次,前端彈窗提示了兩次。

未配置證書抓取HTTPS資料

如果沒有配置證書,直接使用charles抓取https資料,會發現都是亂碼
image

Windows

證書配置

image

Charles Https代理配置

  1. 在Charlesi視窗中點選選單“proxy”->“SSL proxying setting
  2. 在開啟的設定視窗中勾選“Enable SSL Proxying'
  3. 點選“OK”

image

MacOS證書配置

image

IOS證書配置

image

第五步:返回“通用”頁面,選擇“關於本機”
第六步:點選“證書信任設定”,啟用Charles Proxy CA證書並確認

提示:IOS手機證書,需要先把手機代理設定為電腦地址後才能下載證書(別人說的,不知道真假)

Charles流量配置(模擬弱網)

參考資料:
image

流量配置可以讓Charles模擬不同網路環境下的操作,可以用來做弱網測試
步驟如下:

  1. 在Charles視窗中點選選單“Proxy”->“Throttle Setting”
  2. 在開啟的設定視窗中勾選“Enable Throttling”
  3. 在“Throttle preset'”下拉框中選擇對應的網路型別
  4. 點選“OK”

image

可靠性影響是否丟失資料,穩定性影響是否斷網

Charles斷點配置

斷點配置一般用來構建異常的測試場景,步驟如下:

  1. 右擊介面連結,選擇“Breakpoints”
  2. 在瀏覽器重新整理對應介面的頁面
  3. 此時會自動跳轉到Charles並顯示出介面請求資訊
  4. 點選“Edit Request”,修改請求的資訊,點選“Execute”
  5. 點選“Edit Response”
  6. 在資料格式欄中選擇合適的顯示格式,比如“Json”
  7. 修改對應的資料,點選“Execute”
  8. 回到瀏覽器檢視資料應該為修改之後的Responsel的資訊

image

相關文章