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,在彈出框中,輸入並發線程數以及壓力次數點擊進行測試

 


 

 

本地映射:Map Local

   Map Local的使用場景,要驗證接口返回數據的各種場景,使用本地映射可以修改請求接口的response。
 
  1.1  保存接口響應:右鍵-->save response-->保存到本地路徑(最好為json格式)
  
  1.2 右擊選擇Map local:點擊接口-->右鍵-->Map Local進入Map Edit頁面
  
  1.3  配置Map Local Map To本地文件:Edit Mapping-->Map To選擇你保存到本地已修改的json文件
      • protocol:接口協議
      • Host:接口URL粘進去,自動分解到host與path文本框中
      • port:*(匹配全部)
      • Query: *(匹配全部)
    
  
       1.4 再次請求接口,接口返回response已經變成本地json文件的值。完成~
 
  1.5  關閉Map Local:點擊charles工具欄中的工具,取消map Local勾選,即將本地映射關閉
 
 

遠程映射:Map Remote

背景

在測試環境中,部分功能模塊URL是https ,需要改成http 或其他的URL 才能正確訪問到需要測試的內容。但由於架構設計 需跨團隊協助修改 。

如果不想這么麻煩,Charles的Map Remote就派上用場了。

功能

把你要請求的地址,映射到一個遠程地址;相當於把你的請求地址修改了;

打開charles —》Tools——》Map Remote Settings,添加你要選擇映射的URl。
From 一欄填入原始的URL
To 一欄填入 要映射到的URL(你遠程映射的地方)
在這里插入圖片描述
還可以鼠標右擊你想映射的Host
在這里插入圖片描述
選擇Map Remote ,將Map To 里面的Host改成你要映射到的地址即可。
在這里插入圖片描述

 

例如,你可以做下面的操作

  • 您可以把 xk72.com/charles/ 映射到 localhost/charlesdev/ 來為xk72.com提供一個子目錄,
  • 或者把xk72.com/*.php 這種指定后綴的所有文件映射到localhost/charlesdev/。

使用建議

如果您想開發某個網站,並且已經有了開發環境的網站,並希望把剛更新的某些文件應用到線上網站,測試下效果如何,則“遠程映射”將非常有用。

例如,您可能把測試環境的css和images目錄下的文件更新了。可以把live.com/css/映射到 dev.com/css/或把live.com/*.css這樣的映射到dev.com。


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM