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