charles除了以前介紹過模擬弱網的功能外,還有不少強大的功能。最近客戶端測試用到的功能介紹以下:服務器
charles設置代理端口號8888:Proxy→ Proxy Settings網絡
手機設置代理,鏈接wifi,點開設置http代理,選擇手動,服務器填寫charles所在本機的ip地址,端口號8888app
Proxy→SSL Proxying Settings→勾取Enable SSL Proxying→add→添加想要抓取的域名和端口號,以抓取阿波羅app數據爲例工具
手機代理到電腦,charles會出現彈窗,詢問allow仍是deny,選擇allow,鏈接成功。測試
一般狀況下,咱們須要對網絡請求進行過濾,只監控向指定目錄服務器上發送的請求。網站
在Charles的菜單欄選擇"Proxy"->"Recording Settings",而後選擇Include欄,選擇添加一個項目,而後填入須要監控的協議,主機地址,端口號。這樣就能夠只截取目標網站的封包了。以下圖截取阿波羅app數據:spa
若是隻測試一個功能的狀況下,能夠只截取單個接口,例如測試阿波羅首頁廣告,只需截取splash接口,添加並勾選。代理
勾選Proxy →Start Recording,開啓抓取記錄,能夠在charles界面看到你所過濾的網絡請求,以阿波羅app爲例:調試
Charles主要提供2種查看封包的視圖,分別名爲「Structure」和"Sequence"。排序
你們能夠根據具體的須要在這兩種視圖以前來回切換。
對於某一個具體的網絡請求,你能夠查看其詳細的請求內容和響應內容。若是響應內容是JSON格式的,那麼Charles能夠自動幫你將JSON內容格式化,方便你查看。
能夠將遠程的某個文件代理到本地文件,進行調試。使用方法以下:
Tools→Map Local→勾選Enable Map Local→Add→填入須要映射本地文件的協議,主機地址,端口號
本地文件能夠是本身造的測試數據,也能夠是接口返回的數據保存到本地再進行修改,只需先將接口返回數據進行保存到本地:點擊某接口response,右擊save response。
Map Remote的功能原理和Map Local的原理相同,都是替換請求,只不過Map Local替換的請求爲本地文件,而Map Remote替換的請求爲線上請求。
使用方法:Tools→Map Remote→勾選Enable Map Remote→Add→填入須要替換請求的協議,主機地址,端口號。
如圖,splash接口映射到entry接口,splash接口訪問的是entry接口的數據。
咱們能夠經過使用斷點功能來篡改請求的數據或者返回的數據,達到模擬的效果,已測試阿波羅app爲例方法以下:
相似於mapping,咱們能夠針對接口右鍵選擇"BreakPoints",這樣這個接口就被加入到斷點狀態了
須要進一步修改斷點的屬性,能夠在菜單欄"Proxy"–>"Breakpoints Settings"裏進行添加刪除或者修改,配置方式和mapping雷同,而且能夠選擇這個斷點是在request仍是response,仍是二者都要。
這個時候再刷新app界面,會直接跳轉到斷點模版,這個時候你能夠在對應狀態狀況下修改request或者response,而後點擊下方按鈕「Execute」。
跳轉到斷點界面,先點擊下方執行按鈕「Execute」。
而後點開Edit Response界面,選擇JSON格式,格式清晰,方便修改,直接在上面進行數據修改,改爲你想要測試的數據,而後點擊執行按鈕
再次刷新app界面,而後app返回的是新改的數據,根據返回數據測試客戶端顯示是否正確。
不斷更新。。。