charles抓包工具分享


今天,給大組內QA做了一次分享,主要面向移動端測試,介紹了我平時在測試工作中用到的功能,大家都積極響應,現場搭環境,現場操作,現場提問解答,最后大家都成功的利用起來了,感覺很有成就感。下面介紹我今天分享的內容:

一、charles簡介

二、安裝與配置

三、功能

四、Q&A

一、charles簡介

1.Charles是一個HTTP代理服務器,HTTP監視器,反轉代理服務器。

  ps:反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。我理解的就是手機設置代理連接charles,此時charles表現為一個反向代理服務器。

2.它允許一個開發者查看所有連接互聯網的HTTP通信。

3.Charles是一個簡單的基於HTTP協議傳輸的調試工具,在開發和測試 工作扮演着重要的角色。

二、安裝與配置

charles安裝:

1.下載地址:官網http://www.charlesproxy.com下載

2.破解:Charles是收費軟件,需要破解。破解方法是下載charles.jar替換原來的 jar包。

3.charles.jar下載地址:http://pan.baidu.com/s/1i3Qt24H(我下的charles版本為3.11.2)

ps:jar包對應的charles版本3.11.2 ,可網上搜取最新的

環境配置:

針對移動端測試,測試手機app需要的配置:

1.Charles端口設置
    proxy->proxy Setting,設端口號為8888

 

2.IOS&Android代理環境配置     

連接wifi,點開設置http代理, 選擇手動;     服務器填寫charles所在本機的ip地址,端口號8888

   

3.安裝SSL根證書,查看/修改https接口

    https是SSL協議加密(基於CA證書)的http請求,通過charles抓包看請求,是由charles代替服務器與app實現SSL握手協議。故要用charles抓app的https包,就要在手機上安裝charles的SSL根證書,實現charles對手機app的身份認同。
   安裝證書:http://www.charlesproxy.com/ssl.zip,解壓后導入移動設備。

   方法參考:工具欄Help—》SSL Proxying—》Install Charles Root Certificate on Mobile Device or...

        

       按照提示下載證書:  手機設置代理—》瀏覽器輸入網址—》安裝證書

 

                                                                                                  
   4.SSL代理設置:Proxy→SSL Proxying Settings→勾取Enable SSL     Proxying→add→添加想要抓取的域名和端口號,以抓取阿波羅app數據為例

       

   

三、功能

1.捕獲網絡請求

 捕獲記錄控制:過濾網絡請求 通常情況下,我們需要對網絡請求進行過濾,只監控向指定目錄服務器上發送的請求。

"Proxy"->"Recording Settings",然后Include欄選擇添加一個項目,填入需要監控的協議,主機地址,端口號,這樣就可以只截取目標網站的封包了。如下圖截取阿波羅app數據:

勾選Proxy →Start Recording,開啟抓取記錄,可以在charles界面看到你所過濾的網絡請求,以阿波羅app為例:

Charles主要提供2種查看封包的視圖,分別名為“Structure”和"Sequence"。
Structure視圖將網絡請求按訪問的域名分類。
Sequence視圖將網絡請求按訪問的時間排序。
大家可以根據具體的需要在這兩種視圖之前來回切換。
對於某一個具體的網絡請求,你可以查看其詳細的請求內容和響應內容。如果響應內容是JSON格式的,那么Charles可以自動幫你將JSON內容格式化,方便查看。

2.斷點

Breakpoint:適合臨時性修改數據

通過使用斷點功能來篡改請求的數據或者返回的數據,達到模擬的效果,已測試阿波羅app為例方法如下:

我們可以針對接口右鍵選擇"BreakPoints",這樣這個接口就被加入到斷點狀態了

需要進一步修改斷點的屬性,可以在菜單欄"Proxy"–>"Breakpoints Settings"里進行添加刪除或者修改,並且可以選擇這個斷點是在request還是response,還是兩者都要。

 

刷新app界面,跳轉到斷點模版,這個時候你可以在對應狀態情況下修改request或者response,然后點擊下方按鈕“Execute”。

點開Edit Response界面,選擇JSON格式,格式清晰,方便修改,直接在上面進行數據修改,改成你想要測試的數據,然后點擊執行按鈕。

再次刷新app界面,然后app返回的是新改的數據,根據返回數據測試客戶端顯示是否正確。

3.強大的maping

Map:適合長期將某一些請求重定向到本地文件或另一個網絡地址

a.Map Local
    可以將遠程的某個文件代理到本地文件,進行調試。使用方法如下:
    Tools→Map Local→勾選Enable Map Local→Add→填入需要映射本地文件的協議,主機地址,端口號

    本地文件可以是自己造的測試數據,也可以是接口返回的數據保存到本地再進行修改,只需先將接口返回數據進行保存到本地:點擊某接口response,右擊save response。

b.Map Remote:模擬域名劫持
    實現方法:通過map remote將請求的域名map到另一個域名
    Map Remote的功能原理和Map Local的原理相同,都是替換請求,只不過Map Local替換的請求為本地文件,而Map Remote替換的請求為線上請求。
    使用方法:Tools→Map Remote→勾選Enable Map Remote→Add→填入需要替換請求的協議,主機地址,端口號

    如圖:splash接口映射到entry接口,splash接口訪問的是entry接口的數據。

     

4.網速模擬

charles可以模擬不同的網絡,比如2G,3G,還可以自定義設置網絡速度,用來模擬慢網速。
使用方法如下:
開啟網速模擬,主菜單Proxy——Throttle Settings
配置:打開throttle settings頁面,可選擇內置的一些帶寬設置,也可以自定義設置,通過設置上下行的帶寬和往返延遲來模擬自己需要的網速。

5.重復發送請求

repeat:
此功能對於測試同學特別有用,可以檢驗接口的健壯性。
對於前端的價值是不需要刷新頁面,只需要repeat請求,比如檢驗代理是否成功,修改請求后執行等。
使用方法:
選擇請求后,右擊Repeat 就是重復發送一次請求。
Advanced Repeat可以自定義重復次數和重復間隔,重復發送多次請求。

   Iteration:迭代次數
                                                                       Concurrency:並發數

四、Q&A

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM