charles基本使用文档
生活随笔
收集整理的這篇文章主要介紹了
charles基本使用文档
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Charles 主要的功能包括: 截取 Http 和 Https 網絡封包。 支持重發網絡請求,方便后端調試。 支持修改網絡請求參數。 支持網絡請求的截獲并動態修改。 支持模擬慢速網絡。 Charles 4 新增的主要功能包括: 支持 Http 2。 支持 IPv6。 現以android設備為例,簡單描述charles的基本連接安裝步驟: 我們公司的測試測域名: http://develop.api.test.dabanma.com 正式網絡域名: http://api.xin.com 下載charles 使用adroid測試機連接charles; 獲取pc ip地址; 手機端需要配置(進入手機wifi選擇在同網段選擇wifi): (注:如果pc端開啟了防火墻,charles收不到同意代理的請求) 如果想導入別人charles的設置,在tools中選擇: Charles中設置上行或下行速度(模擬2g、3g、4g網絡): 一款APP針對不同網絡情況下都需要保證不會Crash,同時盡可能做到在弱網情況下也能達到功能正常使用,或者使用體驗達到最佳。 我們借助Charles工具做弱網的測試,或者模擬2G、3G的網絡情況。 Charles的使用方法如下: 首先,打開Charles,在Throttle Settings中設置網絡狀況,比如: 進行這項設置后,我們會看到小紅旗處于工作狀態。 然后,打開Sequence查看每個請求的執行情況,比如: 上圖中可以看到每個請求的大小(size),以及請求的狀況(status)。 PS:弱網、2G、3G建議的上下行速率如下,同時還可以控制丟包率的數據 網絡 上行 下行 弱網 10 30 2G 15 50 3G 384 2800 4G 3000 8000 Charles中設置配置host跳轉:修改服務器返回內容 Map 功能:適合長期地將某一些請求重定向到另一個網絡地址或本地文件。 1)Map Remote 是將指定的網絡請求重定向到另一個網址請求地址。 2)Map Local 是將指定的網絡請求重定向到本地文件。 在 Charles 的菜單中,選擇 “Tools”->”Map Remote” 或 “Map Local” 即可進入到相應功能的設置頁面。 對于 Map Remote 功能,我們需要分別填寫網絡重定向的源地址和目的地址,對于不需要限制的條件,可以留空。下圖是一個示例,我將所有 ytk1.yuanku.ws(測試服務器)的請求重定向到了 www.yuantiku.com(線上服務器)。 對于 Map Local 功能,我們需要填寫的重定向的源地址和本地的目標文件。對于有一些復雜的網絡請求結果,我們可以先使用 Charles 提供的 “Save Response…” 功能,將請求結果保存到本地(如下圖所示),然后稍加修改,成為我們的目標映射文件。 下圖是一個示例,我將一個指定的網絡請求通過 Map Local 功能映射到了本地的一個經過修改的文件中。 Map Local 在使用的時候,有一個潛在的問題,就是其返回的 Http Response Header 與正常的請求并不一樣。這個時候如果客戶端校驗了 Http Response Header 中的部分內容,就會使得該功能失效。解決辦法是同時使用 Map Local 以下面提到的 Rewrite 功能,將相關的 Http 頭 Rewrite 成我們希望的內容。 Rewrite 功能:適合長期地將某一些請求重定向到另一個網絡地址或本地文件。 Rewrite 功能功能適合對某一類網絡請求進行一些正則替換,以達到修改結果的目的。 例如,我們的客戶端有一個 API 請求是獲得用戶昵稱,而我當前的昵稱是 “tangqiaoboy”,如下所示: 我們想試著直接修改網絡返回值,將 tangqiaoboy 換成成 iosboy。于是我們啟用 Rewrite 功能,然后設置如下的規則: 完成設置之后,我們就可以從 Charles 中看到,之后的 API 獲得的昵稱被自動 Rewrite 成了 iosboy,如下圖所示: Breakpoints 功能:適合做一些臨時性的修改。 上面提供的 Rewrite 功能最適合做批量和長期的替換,但是很多時候,我們只是想臨時修改一次網絡請求結果,這個時候,使用 Rewrite 功能雖然也可以達到目的,但是過于麻煩,對于臨時性的修改,我們最好使用 Breakpoints 功能。 Breakpoints 功能類似我們在 Xcode 中設置的斷點一樣,當指定的網絡請求發生時,Charles 會截獲該請求,這個時候,我們可以在 Charles 中臨時修改網絡請求的返回內容。 下圖是我們臨時修改獲取用戶信息的 API,將用戶的昵稱進行了更改,修改完成后點擊 “Execute” 則可以讓網絡請求繼續進行。 需要注意的是,使用 Breakpoints 功能將網絡請求截獲并修改過程中,整個網絡請求的計時并不會暫停,所以長時間的暫??赡軐е驴蛻舳说恼埱蟪瑫r。 使用Charles對Https請求進行抓包:截取 Https 通訊信息 對某個APP做分析的時候發現其請求是Https的,抓包工具不能正常的顯示請求的內容及返回的情況。通過搜索發現Charles是支持針對Https抓包的。具體的操作如下: 1、WIN 電腦端安裝SSL證書 Mac 電腦上安裝證書。點擊 Charles 的頂部菜單,選擇 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,然后輸入系統的帳號密碼(如下載成功后未彈出輸入賬號密碼,需手動修改證書為信任狀態),即可在 KeyChain 看到添加好的證書。如下圖所示: 需要注意的是,即使是安裝完證書之后,Charles 默認也并不截取 Https 網絡通訊的信息,如果你想對截取某個網站上的所有 Https 網絡請求,可以在該請求上右擊,選擇 SSL proxy,如下圖所示: 這樣,對于該 Host 的所有 SSL 請求可以被截取到了。 2、手機端安裝SSL證書 iOS 或 Android 機器上截取 Https 協議的通訊內容,還需要在手機上安裝相應的證書。點擊 Charles 的頂部菜單,選擇 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser”,然后就可以看到 Charles 彈出的簡單的安裝教程。如下圖所示: 證書下載地址:https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/ 具體鏈接:https://www.charlesproxy.com/assets/legacy-ssl/charles.crt IOS的系統,直接Safari打開后按照提升安裝描述文件即可。 3、進行相關的配置 選擇Proxy | Proxy Settings,彈出proxy設置選項卡,勾選Enabling transparent HTTP proxying 勾選Enable SSL Proxying,在Location部份選擇add,按如下圖添加,抓取任意站點、443端口的數據 最后在手機上設置代理地址即可。 修改網絡請求內容 有些時候為了調試服務器的接口,我們需要反復嘗試不同參數的網絡請求。Charles 可以方便地提供網絡請求的修改和重發功能。只需要在以往的網絡請求上點擊右鍵,選擇 “Edit”,即可創建一個可編輯的網絡請求。如下所示: 我們可以修改該請求的任何信息,包括 URL 地址、端口、參數等,之后點擊 “Execute” 即可發送該修改后的網絡請求(如下圖所示)。Charles 支持我們多次修改和發送該請求,這對于我們和服務器端調試接口非常方便,如下圖所示: 給服務器做壓力測試 我們可以使用 Charles 的 Repeat 功能來簡單地測試服務器的并發處理能力,方法如下。 我們在想打壓的網絡請求上(POST 或 GET 請求均可)右擊,然后選擇 「Repeat Advanced」菜單項,如下所示: 接著我們就可以在彈出的對話框中,選擇打壓的并發線程數以及打壓次數,確定之后,即可開始打壓。 反向代理 Charles 的反向代理功能允許我們將本地的端口映射到遠程的另一個端口上。例如,在下圖中,我將本機的 61234 端口映射到了遠程(www.yuantiku.com)的80端口上了。這樣,當我訪問本地的 61234 端口時,實際返回的內容會由 www.yuantiku.com 的 80 端口提供。
?
轉載于:https://www.cnblogs.com/isunny/p/6815301.html
總結
以上是生活随笔為你收集整理的charles基本使用文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【甘道夫】Hadoop2.2.0 NN
- 下一篇: windows2016 安装mysql5