1. 程式人生 > >charles的與安裝使用以及我們平時使用charles容易遇到的問題

charles的與安裝使用以及我們平時使用charles容易遇到的問題

1.2 rec 編輯 pid 其中 延時 清除 風險 條件

上班已3個月了,突然想自己確實該總結和反思呀,最近的教訓和收獲,本人做的是測試,3個月的適應之路,走得感觸頗多,覺得做測試,主要是思維要發散,想常人所想也想常人不常想,今天趁工作閑暇之余,給大家總結下Charles的安裝和使用。

1.1Charles的安裝:

以Charles4.1版本為例,下載地址:http://baoku.360.cn/soft/show/appid/100821

安裝步驟為,一路下一步

1.2 Charles的使用

Charles一個HTTP代理服務器,HTTP監視器,反轉代理服務器·Charles支持抓去http、https協議的請求,不支持socket。它允許一個開發者查看所有連接互聯網的

HTTP通信·這些包括request, responseHTTP headers (包含cookiescaching信息),開發者可以使用它方便的抓取http、HTTPS請求。可以進行簡單的性能測試、弱網測試,除了對於PC端進行代理之外,還可以抓取客戶端(手機、iPad等)數據。除了以上功能之外,Charles還支持Reverse Proxy, Port Forwarding端口轉發,訪問控制,cookie清除,Map Remote,黑名單等功能,且 charles不僅支持Http代理,也支持SOCK代理。這樣就可以支持對所有協議的進行抓包。但是一般不長常用。

Charles有Sequence模式和Strucure展現形式。

Mac系統看是否已默認默認就已經對系統進行了代理,如果沒有,則需要在菜單欄的Proxy上勾選上Mac OS X Proxy

charles對於抓取的包可以進行保存,等下次要分析時,在打開。Filter可以對請求進行過濾,並且支持通配符,比如只想查看以包含365rili且以.do為結尾的請求,可以在Filter中設置365rili.*.doOverview可以更加詳細的查看這次請求的詳細內容,例如耗時詳細列車了請求開始時間、結束時間,響應開始時間、結束時間,總耗時、DNS耗時、網絡延時等。

對於Size也詳細列出了請求頭大小、響應頭大小、壓縮比例等內容。如果想查看更詳細的請求信息,比如

Headercookieform表單等可以點擊Request,類似查看詳細的響應選擇Reponse

除了對於PC端進行代理之外,還可以抓取客戶端,在Proxy->Proxy Settings中設置代理端口號:例如8888,把代理模式設置為手動,設置主機名為Charles所在機器的ip,端口號為Charles配置的代理端口。這樣手機客戶端的所有http請求,都會被charles代理。可以方便的查看客戶端的http請求。

1.2.1 重放與編輯

點擊一個請求,雙值點擊觸摸板,可以對該請求進行復制、保存、重放和編輯操作。可以設置重放次數和並發數。

Edit:編輯修改功能,可以編輯修改任意請求信息,比如表單信息、cookie等,修改完畢後點Execute就可以發送一個修改後的請求數據包。

1.22 包含和排除設置

可以通過Proxy->Recording Settings設置需要抓取哪些包、排除哪些包,通過設置抓取的請求規則,只抓取能匹配這個規則的請求,同時可以在Exclude中設置需要排除的請求。

Include與主界面中的Filter的不同點是,不被包含的請求Charles不會抓取,而filter只是把不符合條件的不進行展示,Charles實際已經抓去了,把過濾條件去掉之後仍會顯示。

1.23 限流設置

有時候開發中需要測試用戶在網絡情況比較的差的時候應用的表現情況,可以使用Charles限流設置,Proxy->Thorttle Settings中設置,可以設置寬帶、延遲等,並可以限制只對哪些hosts進行限流設置。

1.24 設置斷點

有時候對於一些特殊請求在發往服務器之前想要修改一些參數,或者在服務器響應完成之後修改響應信息,此時可以使用Charles的斷點功能:當請求來的時候,Charles會停在斷點處:點擊Edit Request可以對請求進行修改。對於Response類型的斷點也類似。

1.25 No Caching Settings

可以在Tools->No Caching Settings中設置不緩存。這樣對於每個請求會在request中添加兩個Header:

Pragma:no-cache、Cache-Control:no-cache,但是否起作用需要服務器對這兩個Header支持才行。

1.26 DNS Spoofing Settings

一般的開發流程中,在上線之前都需要在測試環境中先行進行驗證,而此時手機客戶端請求的域名是不太容易改變的,可以通過設置dns方式把域名轉發到測試機上,具體設置Tools->DNS Spoofing Settings.

1.27 Map Local Settings

對於前端開發來說,對html頁面,js或者css等進行調整後需要配置線上的接口來查看最終樣式,直接部署到生產環境可能會有風險,並且也不方便隨時修改,可以使用Map Local Settings的方式,把線上的靜態資源映射到本地,這樣當請求靜態的htmljscss等資源的時候會使用本地的信息,方便及時看效果。

1.28 SSL

Charles不僅能夠抓取http協議的包,也能抓取https協議的包,但是由於https是經過加密的,因為抓取的包中的內容是以密文方式展現的,通過配置CharlesSSL可以方便的以明文查看https協議傳輸的內容。在Proxy->Proxy Settings->SSL中設置.

對於PC端瀏覽器需要添加Charles的證書到信任列表,而對於手機端也需要下載Charles的證書charlesproxy.com/charles.crt,然後進行安裝。

1.3、charles使用問題匯總

Charles是一款很好用的抓包修改工具,但是有時候往往因為不熟悉悉這個工具,會遇到各種感覺很莫名其妙的狀況,下面給出我們平時經常遇到的問題以及其解決方案。

1 為什麽下載了不能用啊?打不開啊。

因為charles是需要java環境才能運行的,需要先安裝java環境才可以。

2 為什麽我用著用著就自動關閉了?大概30分鐘就會關閉一次。

因為charles如果沒有註冊的話,每次打開後就只能喲個30分鐘,然後就會自動關閉,所以最好在使用前先按照說明去進行工具的註冊操作。

3 為什麽我在操作的時候有時候就直接在工具界面卡住死了,關都關不掉,只能用任務管理器才可以關掉?

這個是charles這個工具的一個bug,首先隨便抓些包,要求有圖片的請求。然後選中一個圖片的請求,然後分別點擊 Response - Raw 然後那裏會加載其中的內容,然後加載完畢後,再去隨便操作就可以了,就不會在悲劇的直接工具卡死掉了

4 為什麽用了charles後,我就上不了網頁了,但是qq可以。

因為如果charles是非正常狀態下關閉的話,那麽IE的代理就不會被自動取消,所以會導致這種情況。

解決辦法:第一種:直接打開charles,然後再正常關閉即可。 第二種:去將IE瀏覽器代理位置的勾選去掉。

5 為什麽我用charles不能抓到socket和https的數據呢?

首先,charles是不支持抓去socket數據的。 然後,如果抓不到https的數據的話,請查看你是不是沒有勾選ssl功能。 Proxy - Proxy Settings - SSL 設置

6 為什麽我用charles抓取手機APP,什麽都是配置正確的,但是卻抓不到數據。

首先,請確保電腦的防火墻是關閉狀態,這個很重要。

如果,防火墻關了還是不行,那麽請把手機wifi斷掉後重新連接,這樣一般就可以解決問題了。 如果以上方法還是不行的話,那麽請將手機wifi位置的ip地址設置成靜態ip,然後重啟charles工具。

7 抓包後發現form中有些數據顯示是亂碼怎麽辦?

請在Raw模式下查看,Raw模式顯示的是原始數據包,一般不會因為編碼問題導致顯示為亂碼。

8 我用charles抓手機app的數據,但是同時也會抓去到電腦端的數據,可以設置嗎?

可以,設置位置在Proxy - Windows Proxy ,勾選表示接收電腦的數據抓包,如果只想抓去APP的數據請求,可以不勾選此功能。

9 為什麽我用IE可以抓到數據,但是用360或者谷歌瀏覽器就不行?

請確保360或者谷歌的代碼設置中是不是勾選設置的是 使用IE代理。

10 想要復制粘貼某些數據的話,怎麽辦,右鍵沒有相應功能啊?

請直接使用Ctrl +C 和 Ctrl+V 即可。

以上介紹的有限,更多內容見以下鏈接:

http://blog.devtang.com/2015/11/14/charles-introduction/

charles的與安裝使用以及我們平時使用charles容易遇到的問題