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

前言

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

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

主要功能數據庫

  • 支持SSL代理。能夠截取分析SSL的請求。json

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

  •  支持AJAX調試。能夠自動將json或xml數據格式化,方便查看。瀏覽器

  •  支持AMF調試。能夠將Flash Remoting 或 Flex Remoting信息格式化,方便查看。服務器

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

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

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

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

1、安裝charles for mac

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

 

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

不要緊咱們可使用激活碼!

2、激活charles

Charles激活碼:

Registered Name: https://zhile.io

License Key: 48891cf209c6d32bf4

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

激活碼使用步驟:

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

3、基本使用方法

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

其實瀏覽器的請求通常用瀏覽器的開發者工具就能夠,固然charles也能夠作到,使用方法呢,也很簡單

將你連接的網絡,配置網頁代理,注意地址爲你本機的ip地址,能夠經過,ifconfig查看,

 

個人是這個樣子,而後打開網頁,charles就會彈出彈窗提示你,是否allow哈哈。固然allow,搞定,噹噹噹,能夠愉快的抓請求了

 

⚠️若是mac按照上述步驟沒法抓包,那麼咱們還須要設置一個地方 ------》macOS Proxy,charles設置成系統代理,抓取http請求,可是如今只能抓取到http的請求,抓取不到https的請求(https都是🔐和unknow)

二、抓移動端數據包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抓包

此時咱們在電腦上更改代碼能夠直接在手機上查看更改後的效果,不須要反覆上預發去查看

 

三、抓https

安卓:把須要抓取的接口配置一下,或者抓取所有接口

IOS:須要安裝Charles SSl證書 

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

 

 

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

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

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

 

 

 

而後想抓那個接口,重複上邊操做的就能夠啦哈哈,也能夠配置我想抓取所有的接口,如圖

一、PC端SSL設置

選中Proxy→SSL Proxying Setting

 

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

add添加方法

4、簡單功能瞭解

視圖 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使用詳解

相關文章
相關標籤/搜索