前言
Charles 是移動(dòng)端和PC端常用的網(wǎng)絡(luò)抓包工具,測(cè)試人員和開發(fā)人員能夠查看客服端和服務(wù)器之間的所有HTTP/ HTTPS/SSL網(wǎng)絡(luò)請(qǐng)求,從而實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)抓包的截取和分析。
01
下載
官網(wǎng)下載地址:
www.charlesproxy.com/download/
Charles 是一款收費(fèi)軟件,可以免費(fèi)試用 30 天。試用期過后,未付費(fèi)的用戶仍然可以繼續(xù)使用,但是每次使用時(shí)間不能超過 30 分鐘,并且啟動(dòng)時(shí)將會(huì)有 10 秒種的延時(shí)。因此,該付費(fèi)方案對(duì)廣大用戶還是相當(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è)置頁(yè)面,選擇【無線局域網(wǎng)】,點(diǎn)擊連接的WIFI后面的感嘆號(hào)(以IOS為例)
■ 點(diǎn)擊【配置代理】–>【手動(dòng)】,輸入本機(jī)IP地址以及端口號(hào),點(diǎn)擊存儲(chǔ)
#2
手機(jī)端https證書安裝
■ Help --> SSL Proxying --> Install Charles Root CertificateInstall Charles Root Certificate On a Mobile Device or Remote Browser
■ 手機(jī)瀏覽器訪問chls.pro/ssl,此時(shí)電腦上Charles會(huì)出現(xiàn)彈窗,需要點(diǎn)擊“Allow”,下載證書到手機(jī)


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

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

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

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

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

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

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

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

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