1. 程式人生 > 其它 >Charles抓包工具使用

Charles抓包工具使用

Charles簡介

Charles是一個HTTP代理伺服器,HTTP監視器,反轉代理伺服器,當瀏覽器連線Charles的代理訪問網際網路時,Charles可以監控瀏覽器傳送和接收的所有資料。它允許一個開發者檢視所有連線網際網路的HTTP通訊,這些包括request, response和HTTP headers (包含cookies與caching資訊)。

Charles主要功能

  • 支援SSL代理。可以擷取分析SSL的請求。
  • 支援流量控制。可以模擬慢速網路以及等待時間(latency)較長的請求。
  • 支援AJAX除錯。可以自動將json或xml資料格式化,方便檢視。
  • 支援AMF除錯。可以將Flash Remoting 或 Flex Remoting資訊格式化,方便檢視。
  • 支援重發網路請求,方便後端除錯。
  • 支援修改網路請求引數。
  • 支援網路請求的截獲並動態修改。
  • 檢查HTML,CSS和RSS內容是否符合W3C標準。

開始抓包

在開始抓包之前,先來介紹下本篇文章主要涉及Charles那些?

  • Charles的介紹與安裝
  • web抓包
  • App抓包
  • 抓取手機HTTPS協議
  • Charles過濾
  • 弱網測試
  • 打斷點篡改資料
  • 重複傳送請求
  • compose編輯介面
  • 伺服器壓力測試
  • 本地對映
  • 遠端對映
  • 後續會繼續更新

Charles的介紹與安裝

在移動網際網路時代,作為測試工程師,開發工程師。絕對必須要掌握必要測試工具,今天主要來了解Charles。

官方地址:

www.charlesproxy.com/

 

web抓包

1,web 抓包

Charles Web抓包非常簡單,啟動Charles會自動與瀏覽器設定成代理,不需要進行過多的設定,接下來我就就是通過瀏覽器傳送網路請求,Charles就會直接抓取到這些資訊和響應資訊

 

 

2,Web 抓取HTTPS協議

雖然現在Charles能夠直接抓包了,但是https協議的報我們是抓取不了的,需要安裝SSL證書才可以

Charles下配置 1,點選頂部選單欄【Help】-->選擇【SSL Proxying】,點選【install Charles Root Certificate 】安裝Charles根證書即可; 這裡由於用的筆記本截圖快捷鍵問題,沒發擷取,這裡擷取證書安裝,證書安裝一直下一步就可以

2,點選【Proxy】-->【SSL Proxying Settings...】 3,在彈出選項卡中,勾選【Enable SSL Proxying】點選【add】,在Host輸入【*】表示接收任何主機,在Prot輸入【443】最後點選【ok】儲存

 

App抓包

Charles抓包不僅僅可以抓取來在電腦端的HTTP請求,也能夠抓取來自App發出的HTTP請求,但是手機抓包需要在電腦端配置下,並且同時需要手機和電腦在同一網路下

電腦端配置:

1,啟動安裝好的Charles抓包工具; 2,點選【Help】-->【local IP Address】獲取下ip地址,也可以直接通過電腦自帶的CMD命令來獲取電腦IP【ipconfig】,根據自己的習慣這裡的ip是取我虛擬機器的;

  3,點選【Proxy】-->【Proxy Settings】我們在設定下埠號“9999”;

 

手機端設定:

1,開啟手機的設定頁面; 2,選擇【無線區域網】; 3,IOS點選連線的WIFI後面的感嘆號,安卓應該是長按連線的WIFI;(注:這裡主要以IOS為例) 4,點選【配置代理】-->【手動】; 5,輸入本機【IP地址(192.168.1.75)】以及埠號【9999】,這是我本機的,根據自己情況合理配置; 6,點選【儲存】

接下里驗證下手機請求,當我們看到Charles裡能抓到這個連線,就說明配置沒問題,看到unknown,這個不要緊,那是我們沒有安裝針對手機端的證書,下面繼續我們手機端HTTPS證書安裝

 

抓取手機HTTPS協議

通過上面的設定,雖然來自我們手機端的Http協議請求可以抓取到,但是HTTPS協議的包是不能抓取的,需要安裝配置證書才可以,現在手機上大多數都已經切到https很少由http協議的了

Charles配置:

1,點選頂部選單欄【Help】-->選擇【SSL Proxying】,點選【install Charles Root Certificate】安裝Charles根證書即可; 2,點選安裝【Install Charles Root Certificate On a Mobile Device or Remote Browser】在移動裝置上或遠端瀏覽器安裝證書即可;(這裡和上面安裝一樣)

 

 

Charles過濾

通常情況下,我們需要對網路請求進行過濾,只監控向指定目錄伺服器上傳送的請求。對於這種需求,以下幾種辦法:

方法一:在主介面的中部的 Filter 欄中填入需要過濾出來的關鍵字。例如我們的伺服器的地址是:ceshi.com, 那麼只需要在 Filter 欄中填入 ceshi 即可。

方法二:在 Charles 的選單欄選擇 “Proxy”->”Recording Settings”,然後選擇 Include 欄,選擇新增一個專案,然後填入需要監控的協議,主機地址,埠號。這樣就可以只擷取目標網站的封包了。如下圖所示:

 

弱網測試

Charles配置弱網設定 1,點選【Proxy】-->【Throttle Setting】 2,勾選上【Enable Throttle】,也可以勾選【only for selected host 】 設定一個指定註解訪問進行網路限制,不影響其他軟體; 3,在【Throttle preset】選擇常見預設的網路情況,也可以在【Bandwidth】自己設定網路的上傳和下載速率

 

修改請求資料

1.介面處右擊滑鼠 勾選breakpoints(允許本介面使用breakpionts功能)

2.設定斷點值


3.從新重新整理瀏覽器,可修改請求引數,執行請求

4.執行成功

 

修改返回資料

複製介面連結,拷貝到Host中,勾選Response,點選Ok。

在text中編輯內容,點選Execute(執行),重新重新整理頁面

 

 內容更改成功

 

重複傳送請求

在我們的測試工作中,可能你會發先一個bug,開發會讓你在操作一遍,他要檢視日誌經i選哪個定位分析,這時候,在客戶端上進行操作一遍就會麻煩,這是直接用Charles 傳送一遍重複的請求就可以了,並且,重新發送請求也可以幫助我們進行功能測試; 選擇需要重新發送請求的會話上,直接點選工具欄【重新按鈕】

 

Compose編輯介面

在我們的測試工作中,可能需要傳送不同的引數進行請求。 選擇需要修改的請求,右鍵選擇【Compose】這時多出一個筆的請求;

伺服器壓力測試

Charles 還有一個比較有意思的功能,它能勾簡單的給伺服器進行壓力測試; 1,在進行壓力測試的請求會話上右擊,選擇【Repeat Advanced】

2,在彈出框中,輸入併發執行緒數以及壓力次數點選進行測試


參考連結:https://juejin.cn/post/6844904182588112904
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。