前言
軟件開發(fā)中种柑,我們有時需要監(jiān)控接口的請求和響應(yīng),或者篡改服務(wù)器返回的數(shù)據(jù)匹耕,以滿足客戶端的測試需求聚请,在不麻煩別人的前提下,這時我們就可以使用Charles進行監(jiān)控、抓包驶赏、改包等操作炸卑。
配置
安裝Charles
TIPS: 示例中用的是v3.9.3版本
安裝后,如下圖:
Charles-icon@2x.png
設(shè)置HTTP代理
- 讓電腦和手機處于同一局域網(wǎng)內(nèi)(手機連接電腦分享的無線網(wǎng)絡(luò)也不行)
- 修改手機連接的無線網(wǎng)配置-設(shè)置HTTP代理
- 服務(wù)器:可以在電腦上查看連接的無線網(wǎng)IP
-
端口:8888
Charles-手機無線網(wǎng)配置@2x.png
監(jiān)聽請求
一般用法(監(jiān)控網(wǎng)絡(luò)請求)
配置好代理煤傍,打開Charles盖文,打開需要監(jiān)聽的程序,這時Charles有可能會彈框蚯姆,點擊同意即可五续。界面如下圖:
Charles-Sequence@2x.png
我們可以查看請求概況、request蒋失、response等信息返帕。
Tips:默認是
Sequence
(順序)顯示網(wǎng)絡(luò)請求,這樣可以看到請求順序篙挽,但是無法直觀地顯示某個站點下的接口匯總荆萤,所以我使用Structure
(結(jié)構(gòu)、分類)铣卡,如下圖:
Charles-Structure@2x.png
高級用法(篡改請求和響應(yīng))
言歸正傳链韭,說重點。想要在請求時煮落,修改請求和響應(yīng)信息敞峭,就需要給請求打個
Breakpoints
(斷點)
添加斷點
Charles-給接口添加斷點@2x.png
進入斷點
-
當(dāng)給某個接口添加斷點后,再次請求接口蝉仇,就會進入斷點旋讹,如下圖:
Charles-進入斷點Overview@2x.png -
這時我們可以執(zhí)行取消(
Cancel
)、終止(Abort
)轿衔、跳過(Execute
)操作沉迹。- Cancel: 想當(dāng)于沒有打斷點
- Abort:終止請求,此時會請求失敗(可能出現(xiàn)的錯誤信息:Request aborted by breakpoint)
- Execute:執(zhí)行過斷點害驹,接著往下執(zhí)行請求
篡改Request
-
通過斷點鞭呕,我們可以修改Request信息,如下圖:
Charles-進入斷點EditRequest@2x.png 這時我們可以修改請求頭信息
篡改Response
-
通過斷點宛官,我們可以修改Response信息葫松,如下圖:
Charles-進入斷點EditResponse@2x.png 這時我們可以修改接口返回的json數(shù)據(jù),一般情況下就不再需要麻煩服務(wù)端修改代碼以配合我們測試了底洗。
TIPS
- 可以給某個接口添加斷點腋么,也可以在域名上添加斷點,此時該域名下的所有接口都將被斷點亥揖。
- 不使用Charles時珊擂,建議關(guān)閉手機上的代理,否則手機聯(lián)網(wǎng)有可能會出現(xiàn)問題,比如微信只會顯示文字未玻,加載不出來圖片等等灾而。。扳剿。