<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                # Charles使用介紹 Charles是常用的網絡封包截取工具,在做移動開發和測試時常常需要截取網絡封包來分析。 Charles是通過將自己設置成系統的網絡訪問代理服務器,使得所有的網絡訪問請求都通過它來完成,從而實現了網絡封包的截取和分析, 更多詳細內容移步官方網站:[https://www.charlesproxy.com/](https://links.jianshu.com/go?to=https%3A%2F%2Fwww.charlesproxy.com%2F) Charles 雖然是收費軟件,但即使不購買也能長期使用,并且功能上不會缺斤短兩。唯一要付出的代價是每次使用時間不能超過 30 分鐘,并且啟動時將會有 10 秒種的延時。 本文旨在介紹下常用的功能,其他更多的功能依據需求自行摸索。 ## Charles在移動端測試的主要應用 ## 一、Charles抓包HTTP、HTTPS 1、安裝根證書: ![](https://img.kancloud.cn/50/08/50086173c87bfbbd412ff3f28b1bc118_1200x369.png) Tips: 安裝根證書,默認不信任,需要到鑰匙串里,點擊信任: ![](https://img.kancloud.cn/b4/58/b45801648b134093264140720cc7aa9b_1200x759.png) 將移動設備和本機置于同一個網絡下,在移動設備上的網絡中添加代理 -> 手動 -> 填寫主機名和端口。一般來說,Charles默認的端口是8888,在Proxy -> Proxy Settings可設置。主機名就是本機的IP的地址,在Charles -> Help -> Local IP Address可查看。 ![](https://img.kancloud.cn/ab/76/ab767bdae407fd53c2f25e8ef4354a67_760x872.png) 一般初次連接時會提示是否允許進行連接,點擊allow允許就好了。如果不小心點擊拒絕,那么有兩種方法,第一種重啟Charles;第二種,Proxy -> Access Contro Settings中添加移動設備的IP地址。 ![](https://img.kancloud.cn/9b/0d/9b0db492d49c4ad07e1942df6c6a9c56_1200x248.png) 2、Charles抓移動設備HTTPS請求 點開 Help -> SSL Prox -> Install Charles Root Certificate on a Mobile Devices or Remote Browser ![](https://img.kancloud.cn/8d/bc/8dbc529b74fa0a53a0767442808734bd_1200x248.png) 提示很明顯,先讓設備連上Chalres,然后在設備上用系統瀏覽器訪問chls.pro/ssl,然后會自動下載一個證書,選擇安裝證書。之后便可以抓取https協議的包了。 通過手機內證書管理程序,從設備存儲空間安裝 ![](https://img.kancloud.cn/52/69/52696c4739354e0a63ba42d46de1e5da_337x362.png) 之后在需要的請求上,點擊Enable SSL Proxy即可, 或者在Proxy -> SSL Proxy Settings中勾選上Enable,并且添加指定host。 ![](https://img.kancloud.cn/0a/5a/0a5ad162d6fe3050457a18c94e83cda8_574x924.png) 例如抓取全部https,host輸入通配符“ \* ”,port填443。 ![](https://img.kancloud.cn/1c/06/1c06b777a6c16536c1aac7690e165bf3_1184x884.png) #### 3、Android 7.0 HTTPS抓包 Android 7.0以上版本,Google更新了網絡安全性配置,不再信任用戶導入的CA根證書。所以即便是安裝了證書,也得不到系統的信任,需要在應用中添加信任才行。 二、Charles過濾請求 一般來說,我們只關心特定HOST的請求。當我們僅想監控這些請求時,可以使用Charles的過濾功能。 1、Record Settings設置include/exclude Proxy -> Recording Setttings include:需要監控的host。如果列表為空時,默認監控所有請求 exclude:不需要監控的host ![](https://img.kancloud.cn/f1/d1/f1d16d9b6b4554c394a87673753a5045_1184x788.png) 2、Filter Filter一欄中輸入需要要過濾的host或者關鍵字。也可以在勾選上Foucsed,并制定focus哪些host。 ![](https://img.kancloud.cn/a0/93/a093203b91e5256d7a1602341f8d088d_1200x362.png) 3、Repeat 可以使用 Charles 的 Repeat 功能來簡單地測試服務器的并發處理能力,方法如下。 * 我們在想打壓的網絡請求上(POST 或 GET 請求均可)右擊,然后選擇 「Repeat Advanced」菜單項,如下所示: ![](https://img.kancloud.cn/9e/e9/9ee95d552b1e8117c3e8de1e7fc58ce5_1200x550.png) 在彈出的對話框中,選擇打壓的并發線程數以及打壓次數,確定之后即可執行 ![](https://img.kancloud.cn/15/fb/15fb2ba54e0bf37cb972f5ff41735887_1080x596.png) 4、BlackList&WhiteList 黑名單表示對名單內的所有請求做過濾 ![](https://img.kancloud.cn/2e/4b/2e4b4c65b80e755002871f4707d1f456_1080x724.png) 白名單表示僅對名單內的請求做響應 ## 三、Charles網速模擬 1、Throttle Setting Charles內置幾種網絡模型可直接使用,也可自定義來滿足特定需求。 當然更可以只針對特定host模擬網速,只需要勾選上Only for select hosts就ok了。 ![](https://img.kancloud.cn/15/55/1555600226d643c288bed096e96f2075_1072x1174.png) 四、Charles修改請求及返回值 移動端測試中,Charles最常用的應該就是修改請求返回值了,有幾種方式可以實現。 1、breakpoints 像斷點一樣,當執行到指定規則鏈接時,觸發breakpoints。即可以在請求到服務端前中斷,也可以在返回到客戶端前中斷。在這個過程中便可以修改Request或者ResponseR。不過值得注意的是,在移動端的測試中,使用breakpoints會大概率導致客戶端的請求超時。因為手動修改是需要花時間的,所以一般很少使用斷點的操作來修改請求和返回參數。 ![](https://img.kancloud.cn/1e/90/1e903854eb0a7133319997c771797290_1068x834.png) 2、重定向 -- Map Local、Map Remote 顧名思義,Map Remote 是將指定的網絡請求重定向到另一個網址請求地址,Map Local 是將指定的網絡請求重定向到本地文件。 Map Remote簡單的實例: ![](https://img.kancloud.cn/61/cf/61cf87a791fe2164a727e1c89ff729e4_1080x672.png) Map Local簡單的實例: ![](https://img.kancloud.cn/ec/f5/ecf5a00595d5182ad52e7064a0dea47c_1080x672.png) 3、rewrite Rewrite 功能功能適合對某一類網絡請求進行一些正則替換。 Rewrite功能很強大,能很方便的在各種測試環境切來切去,就像圖中列表所展示。 ![](https://img.kancloud.cn/bd/5f/bd5fd66f387757b1ddd48d6969ed7a24_1086x1002.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看