Charles學習(一)之macOS Charles 4.x版本的安裝、激活、使用以及軟件功能了解


前言

Charles是mac上一款比較好用的抓包工具,那么我們什么情況下需要用到抓包工具呢?比如我想查看一個接口請求的參數、返回值,還有移動設備上的http/https請求。

Charles是一個HTTP代理服務器,HTTP監視器,反轉代理服務器,當瀏覽器連接Charles的代理訪問互聯網時,Charles可以監控瀏覽器發送和接收的所有數據。它允許一個開發者查看所有連接互聯網的HTTP通信,這些包括request, response和HTTP headers (包含cookies與caching信息)。

主要功能

  • 支持SSL代理。可以截取分析SSL的請求。

  •  支持流量控制。可以模擬慢速網絡以及等待時間(latency)較長的請求。

  •  支持AJAX調試。可以自動將json或xml數據格式化,方便查看。

  •  支持AMF調試。可以將Flash Remoting 或 Flex Remoting信息格式化,方便查看。

  •  支持重發網絡請求,方便后端調試。

  •  支持修改網絡請求參數。

  •  支持網絡請求的截獲並動態修改。

  •  檢查HTML,CSS和RSS內容是否符合W3C標准。

一、安裝charles for mac

官網:https://www.charlesproxy.com/latest-release/download.do

 

下載好后,解壓,將安裝包拖到應用程序里,雙擊進行安裝,打開Charles后會看到提示還有30天使用期限

沒關系我們可以使用激活碼!

二、激活charles

Charles激活碼:

Registered Name: https://zhile.io

License Key: 48891cf209c6d32bf4

參考:https://blog.csdn.net/qq_25821067/article/details/79848589

激活碼使用步驟:

選擇菜單---> help---> register..... ---->輸入賬號和key提交破解成功就可以正常使用啦!

三、基本使用方法

1、抓瀏覽器網頁http請求 —— 配置網頁代理

其實瀏覽器的請求一般用瀏覽器的開發者工具就可以,當然charles也可以做到,使用方法呢,也很簡單

將你鏈接的網絡,配置網頁代理,注意地址為你本機的ip地址,可以通過,ifconfig查看,

 

我的是這個樣子,然后打開網頁,charles就會彈出彈窗提示你,是否allow哈哈。當然allow,搞定,當當當,可以愉快的抓請求了

 

⚠️如果mac按照上述步驟無法抓包,那么我們還需要設置一個地方 ------》macOS Proxy,charles設置成系統代理,抓取http請求,但是現在只能抓取到http的請求,抓取不到https的請求(https都是🔐和unknow)

2、抓移動端數據包http請求 ———— 配置移動端代理

  • 手機和電腦連接同一網絡

  • 獲取電腦ip、端口:在電腦上打開charles,設置代理端口並勾選啟用透明的http代理,安裝證書,查看電腦的ip地址------->  ifconfig

  • 在手機上配置代理,手機的網絡里,找到鏈接的wifi,添加代理,將手機的服務器和端口設置為電腦ip和電腦端口

  • 保存后,charles會彈出彈窗提示allow,同意,又可以愉快的抓包了

1)獲取Mac IP

手機連接與Mac相同的無線網內,查看當前Mac IP地址

PS:也可直接option+wifi查看

2)設置PC端代理端口號

設置端口號如:8888(也可更改,手機設置代理輸入一致即可)

 

安裝證書

3)設置手機代理

iOS手機代理設置

設置-無線局域網,進入已連接WiFi----》配置代理----》手動(端口需與PC端設置的代理端口號一致,服務器為PC端Mac IP)

安卓手機代理設置

設置-WLAN,進入已連接WiFi手動設置(端口需與PC端設置的代理端口號一致,服務器為PC端Mac IP)

不同安卓手機彈出設置代理入口不同,如果進入網絡詳情頁無代理項,可在WLAN列表長按wifi名稱彈出代理設置如下:

當手機進行數據請求時,Charles 將彈出是否允許連接此代理(選擇允許 allow),之后便可進行http抓包

此時我們在電腦上更改代碼可以直接在手機上查看更改后的效果,不需要反復上預發去查看

 

3、抓https

安卓:把需要抓取的接口配置一下,或者抓取全部接口

IOS:需要安裝Charles SSl證書 

安卓手機就很方便了,直接就可以不用配置什么,但是要把要抓的接口配置一下,比如,我想抓這個接口,我就要配置成可抓取的,具體如圖

 

 

IOS手機(牛X的蘋果惹不起)

ios需要安裝證書(安卓不用):進入Charles-》Help-》SSL Proxying-》Install Charles Root Certificate ,會打開證書,安裝進去 

手機---設置----關於手機-----證書信任設置----勾上剛才安裝的

 

 

 

然后想抓那個接口,重復上邊操作的就可以啦哈哈,也可以配置我想抓取全部的接口,如圖

1、PC端SSL設置

選中Proxy→SSL Proxying Setting

 

開啟SSL代理,並添加信任地址

add添加方法

四、簡單功能了解

視圖 Structure 和 Sequence

 

設置為列表方法 

設置->Preferences->Viewers

 

 

清除和暫停

清除是清除所有已經抓到的全部請求

 

暫停是停止抓取數據,保留之前抓取的數據

過濾 Focus

設置代理后,抓取到手機的各種請求,很多是不需要的,因此需要過濾下請求

選擇需要的請求右鍵選擇Focus

或者抓包列表底部filter輸入需要查看的請求關鍵字

重復請求 Repeat/Advanced Repeat

tools→ Repeat/ Advanced Repeat (可做簡單的並發壓測)

repeat 單次重復請求

 

 Advanced repeat 多次重復請求

如某個接口共需要請求20次,單次並發請求10個,設置如下

斷言 Breakpoints

測試或者開發中有些場景,可能需要手動造很多數據才能發現問題,那么mock替換JSON返回值這個功能就非常實用了,右鍵請求url,選擇Breakpoints,則默認添加該請求入接口斷言列表

Proxy→Breakpoints Settings 查看接口斷言列表

或者Proxy→Breakpoints Settings->add 添加斷言

添加需要斷言的請求url如下:

設置斷言成功后,重新發起請求,狀態變為可編輯狀態,進入請求參數or返回參數的修改

修改請求參數↓,設置成功后點擊底部“Execute”進入下一步修改返回參數

 

修改返回參數如下,如title“年糕媽媽商城”需要修改成改成“AAAA”,直接在JSON Text中編輯

修改后如下:

最后再次點擊“Execute”,如果是手機端發起的請求,mock修改后前端頁面就會展示修改后的數據啦!是不是很方便!如果想界面測列表幾十條數據的功能點,可以省去數據庫或者后台造數據的時間,直接txt造幾十條json數據就可以啦!(PS:修改參數手速要快哦~因為一般情況下,為了用戶體驗,大部分頁面都會兼容一定時間內接口無響應,顯示默認友好提示的空頁面,所以替換的json可以事先在json編輯器中或者txt中編輯好,之后直接復制粘貼就可以啦~)

另外使用斷點可以模擬接口在請求過程中的各種狀態,如請求失敗、請求成功但返回數據不對

請求失敗:設置好斷言后,在請求接口的時候會跳到這個頁面,此時前端發起的該接口請求已經被攔截,點擊abort會跳過這個請求,請求失敗

請求成功但數據不對:設置好斷言后,在請求接口的時候會跳到這個頁面,此時前端發起的該接口請求已經被攔截,點擊execute,此時可以修改返回json數據,修改好后再次點擊execute,請求成功但數據不對

重定向 Map Remote

如果在測試過程中,需要切換host不同的環境來測試,那么替換host功能就可以實現,不需要手動再重新打包更改域名,打開Charles→Tools→Map Remote→點擊ADD

如下如所示方式添加即可

 Map Local

tools->map local,映射本地json文件,可直接更改本地json文件來mock數據調試查看,功能類似斷言

⚠️map Local和斷言不能同時存在

網速模擬  Throttling

Proxy-Throttling勾選Enable Throttling啟用網速模擬,可選擇內置的一些帶寬設置或自定義設置,保存后可以點擊主界面的按鈕開啟/禁用慢網速功能

配置含義:

Bandwidth(帶寬)、Utilistation(利用百分比)、Round-trip(往返延遲)、MTU(字節)

以上都是Charles常用的基礎功能, 其實還有很多其他更有趣功能,可自行摸索~Charles可以說是測試之路上排查問題找問題非常實用的工具啦!測試必備哦~

參考:macOS Charles 4.x版本的安裝及使用(含破解激活)

            MAC下最好用的抓包工具--charles簡單操作教程

            Charles 從入門到精通   

   Charles使用詳解

 


免責聲明!

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



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