charles幾個常用功能
1,ios 抓包https網頁:(如未配置,會顯示unknown)
首先:給手機安裝SSL證書
- 手機和電腦在同一wifi下,手機wifi配置http代理,ip是電腦ip,端口一般默認8888
- 安裝SSL證書到手機,Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device
- 在手機上輸入彈窗提示網址后,瀏覽器會自動彈出下載或者安裝彈窗,安裝證書
- 注意最后步驟必須保證第一步完成,即此時手機已配置了電腦的IP代理,否則的話可能不會自動下載
case1:如果是安卓機,下載成功后沒有安裝彈窗,點擊下載的pem文件無法打開,此時
if 小米,設置-更多設置-系統安全-加密與憑據-從儲存設備安裝,點擊對應文件,安裝即可
if 華為,設置-高級設置-安全-從SD卡安裝證書,點擊對應文件,安裝即可
case2:如果是iphone,且ios 10以上,需要到通用-關於手機-證書信任設置,勾選一下,即可
第二步:PC端,在charles SSL Proxying 增加你想要抓的網址
- charles,Proxy -> SSL Proxying Settings
- 點擊add: host(寫你要抓的網址url);端口443
兩步做完之后手機再次發起請求,charles已經能看到https網頁的接口數據了,在這個過程中charles有可能會問詢能否連接,直接點擊allow即可
如果完成以上步驟還是不能抓包,可以嘗試重啟charles,重新連接
還不行的話,再次確認下當前PC的ip地址是否正確,注意wifi不同,當前pc的IP地址會變化,如果IP地址變化的話,就算是同一手機也要針對新的IP重新完成以上操作,才能抓包
2,模擬弱網
Proxy--->Throttle Settings
勾選Enable Throttling后,在Throttle Configuration設置弱網的參數
如果不對具體的弱網參數有要求,直接點擊ok就可以了
面板上的小烏龜圖標也可以開啟或者關閉 Throtting
(衍生:弱網測試charles配置是一種方法,ios同時自帶了弱網測試,開發者選項打開情況下,設置-開發者選項 > Network Link Conditioner 入口,系統已經內置常見網絡配置,也可以增加自定義配置。)
3,設置斷點,修改數據(比如你想要更改某個接口的request或者reponse的某個字段)
點擊想要操作的接口,右鍵勾選 Breakpoints
從客戶端再次請求該接口,charles自動跳轉到新的session
點擊 Edit Request ,Form視圖下,可以更改客戶端的傳參,修改后點擊Execute即可執行,第一次只能看到傳參並更改,點擊執行后可以看到response,此時可以更改返回參數(json模式查看)
更改之后再次點擊Execute,就可以看到更改后的參數
4,接第三點,如果我想一直存儲這個修改后的接口數據,而不是每次都要經過斷點呢?——可以用Map Local
Map Local是將指定的網絡請求重定向本地文件上
接上,點擊更改后返回的request/reponse內容,右鍵save request/response保存到本地文件夾中
再次點擊你要修改的接口,右鍵點擊Map Local,在Map to下的choose里選擇剛剛保存的文件
Tools-Map Local- Map Local Seting可以勾選你想選擇的選項
之后再在客戶端重新請求接口,就可以發現客戶端顯示的就是剛剛你修改后的內容
那么如果關閉Map local ,恢復正常請求呢,在 Tools-Map Local 里把enable勾選去掉,或者去掉你想要關閉的文件就可以了
如果map local了文件之后再次發起請求,數據沒有變化,可以查看保存的request/response的json文件,之前做的修改是否有效,可以使用一些線上的json轉換文件
可手動更改json文件的內容,重新map local,app再次發起請求,一般來說就可以了
5,壓測:重復給服務器發起請求,簡單測試服務器的並發處理能力
接口右鍵,repeat Advanced
iteration 循環次數
concurrency 並發數
附注:
1,
網絡環境
|
上/下行帶寬(kbps)
|
2G
|
20/50
|
3G
|
330/2000
|
4G
|
40000/80000
|
wifi
|
33000/40000
|
2,
throttle [ˈθrɑ:tl] 喉嚨;節流閥;
certificate [səˈtɪfɪkət] 證書
proxy [ˈprɑ:ksi] 代理服務器; 代表權;
iteration [ˌɪtəˈreʃən] 循環
concurrency [kən'kʌrənsɪ] 並發
3,
根據具體的需求,Charles提供了Map Remote、Map Local、及Rewrite功能,都可以達到修改服務器返回內容的目的,三種的區別分別是:
1.Map Remote是將指定的網絡請求重定向到另一個網址上
2.Map Local是將指定的網絡請求重定向本地文件上
3.Rewrite是對網絡請求進行一下正則替換