前言
Charles 是移動端和PC端常用的網(wǎng)絡(luò)抓包工具,測試人員和開發(fā)人員能夠查看客服端和服務(wù)器之間的所有HTTP/ HTTPS/SSL網(wǎng)絡(luò)請求,從而實(shí)現(xiàn)對網(wǎng)絡(luò)抓包的截取和分析。
01
下載
官網(wǎng)下載地址:
www.charlesproxy.com/download/
Charles 是一款收費(fèi)軟件,可以免費(fèi)試用 30 天。試用期過后,未付費(fèi)的用戶仍然可以繼續(xù)使用,但是每次使用時間不能超過 30 分鐘,并且啟動時將會有 10 秒種的延時。因此,該付費(fèi)方案對廣大用戶還是相當(dāng)友好的,即使不付費(fèi),也能使用完整的軟件功能。
02
PC端配置
#1
安裝證書:
■ Help --> SSL Proxying --> Install Charles Root Certificate ,一直點(diǎn)擊“下一步”,證書安裝完成。



#2
設(shè)置https協(xié)議
■ 點(diǎn)擊【Proxy】–>【SSL Proxying Settings…】
■ 在彈出選項(xiàng)卡中,勾選【Enable SSL Proxying】點(diǎn)擊【add】
■ 在Host輸入【*】表示接收任何主機(jī),在Prot輸入【443】,點(diǎn)擊保存

03
手機(jī)端設(shè)置
#1
配置代理
■ 打開手機(jī)的設(shè)置頁面,選擇【無線局域網(wǎng)】,點(diǎn)擊連接的WIFI后面的感嘆號(以IOS為例)
■ 點(diǎn)擊【配置代理】–>【手動】,輸入本機(jī)IP地址以及端口號,點(diǎn)擊存儲
#2
手機(jī)端https證書安裝
■ Help --> SSL Proxying --> Install Charles Root CertificateInstall Charles Root Certificate On a Mobile Device or Remote Browser
■ 手機(jī)瀏覽器訪問chls.pro/ssl,此時電腦上Charles會出現(xiàn)彈窗,需要點(diǎn)擊“Allow”,下載證書到手機(jī)


04
Charles界面
Charles 主要提供兩種查看抓包的視圖,分別名為 Structure 和 Sequence。
- Structure:將網(wǎng)絡(luò)請求按訪問的域名分類。
- Sequence:將網(wǎng)絡(luò)請求按訪問的時間排序。
可以根據(jù)不同的需要在這兩種視圖之前來回切換。請求多了有些時候會看不過來,可以通過一個簡單的Filter功能,輸入關(guān)鍵字來快速篩選出 URL 中帶指定關(guān)鍵字的網(wǎng)絡(luò)請求。

05
Proxy菜單介紹
- Start/Stop Recording:開始/停止記錄會話。
- Start/Stop Throttling:開始/停止節(jié)流。
- Enable/Disable Breakpoints:開啟/關(guān)閉斷點(diǎn)模式。
- Recording Settings:記錄會話設(shè)置。
- Throttle Settings:節(jié)流設(shè)置。
- Breakpoint Settings:斷點(diǎn)設(shè)置。
- Reverse Proxies Settings:反向代理設(shè)置。
- Port Forwarding Settings:端口轉(zhuǎn)發(fā)。
- windows Proxy:記錄計(jì)算機(jī)上的所有請求。
- Proxy Settings:代理設(shè)置。
- SSL Proxying Settings:SSL 代理設(shè)置。
- Access Control Settings:訪問控制設(shè)置。
- External Proxy Settings:外部代理設(shè)置。
- Web Interface Settings:Web 界面設(shè)置。

06
記錄會話
Recording Settings
Recording Settings和 Start/Stop Recording 配合使用,在 Start Recording 的狀態(tài)下,可以通過 Recording Settings 配置 Charles 的會話記錄行為。

- Options:通過 Recording Size Limits 限制記錄數(shù)據(jù)的大小。當(dāng)Charles 記錄時,請求、響應(yīng)頭和響應(yīng)體存儲在內(nèi)存中,或?qū)懭氪疟P上的臨時文件。當(dāng)內(nèi)存中的數(shù)據(jù)量可能會變得太多,Charles 會發(fā)出通知并停止錄制。這時需要清除 Charles 會話以釋放內(nèi)存,然后再次開始錄制。在錄制設(shè)置中,可以限制Charles 將記錄的大小。
- Include:只有與配置的地址匹配的請求才會被錄制。
- Exclude:只有與配置的地址匹配的請求將不會被錄制。
Include 和 Exclude 選項(xiàng)卡的操作相同,選擇 Add,然后填入需要監(jiān)控的Procotol、Host 和 Port等信息,這樣就達(dá)到了過濾的目的。如下圖所示:

07
弱網(wǎng)測試
Throttle Settings
勾選【Enable Throttling】,也可以勾選【only for selected host 】 設(shè)置一個指定注解訪問進(jìn)行網(wǎng)絡(luò)限制,不影響其他軟件。
在【Throttle preset】選擇常見預(yù)設(shè)的網(wǎng)絡(luò)情況,也可以在【Bandwidth】自己設(shè)置網(wǎng)絡(luò)的上傳和下載速率。

08
修改請求數(shù)據(jù)
1、選擇一條請求,右鍵勾選【Breakpoints】這是我們會發(fā)現(xiàn)工具欄有個六邊形按鈕已經(jīng)變?yōu)榧t色
2、設(shè)置斷點(diǎn),點(diǎn)擊菜單欄【proxy】勾選【Breakoint Setting …】這是會彈出斷點(diǎn)設(shè)置彈窗;
3、在彈出的斷點(diǎn)設(shè)置彈窗,雙擊想打斷點(diǎn)的接口,進(jìn)行斷點(diǎn)編輯;
4、編輯斷點(diǎn),如果修改Request數(shù)據(jù),勾選Request,如果修改Response數(shù)據(jù),勾選Response,也可以同時勾選;
5、這樣就達(dá)到了設(shè)置斷點(diǎn)的目的,然后可以來觀察或者修改請求或者返回的內(nèi)容,但是在這過程中需要注意請求的超時時間問題。

09
本地文件代理
有時在測試時,需要將某個請求代理到本地文件。
首先選擇需要代理的URL,右鍵選中【Map Local Setting】,在彈窗中Map To中點(diǎn)擊choose,選擇需要代理的本地文件所在路徑,點(diǎn)擊OK就可以了。

10
簡單的壓力測試
如果要測試某一個接口的性能,也可以通過Charles工具。
選擇需要測試URL,右鍵選擇【Repeat Advanced】,在彈出框中,輸入并發(fā)線程數(shù)以及壓力次數(shù)點(diǎn)擊進(jìn)行測試。

以上內(nèi)容介紹了如何使用Charles抓包工具,希望能夠幫助到大家,如果有疑問,歡迎關(guān)注【愛軟測】公眾號,進(jìn)行交流。