iT邦幫忙

1

鼠年全馬鐵人挑戰 WEEK 38:封包測試工具 - Charles (三)

  • 分享至 

  • xImage
  •  

           Photo on charlesproxy.com


前言

上個禮拜分享了 Charles 選項欄中的 Tools 功能
但是因為內容過多 小弟把它拆成兩個部分
而這個禮拜將會延續上禮拜的內容 將剩餘的後半段方想完畢
如果還沒看過前半段 Tools 功能介紹的大哥大姐可以再看一下
封包測試工具 - Charles (二)

分享重點

  • 選項欄中的 Tools 功能介紹
    • DNS Spoofing Settings
    • Mirror Settings
    • Auto Save Settings
    • Client Process Settings
    • Compose
    • Compose New Request
    • Repeat
    • Advanced Repeat
    • Validate
    • Publish Gist
    • Import/Export Settings
    • Profiles
    • Publish Gist Settings

介紹 Charles

選項欄 - Tools

  • DNS Spoofing Settings (設定 DNS 欺騙)
      如果需要測試域名 但是所使用的是虛擬主機
      為了想要將 IP 位址更改為指定的 DNS 來進行測試
      此時就可以透過 DNS Spoofing 來達成
      將自己的主機名指定給遠程地址映射來欺騙 DNS 查找
      當請求通過 Charles 時 將由 DNS 映射為優先
      可以透過 Import/Export 來匯入或匯出設定內容

      "Enable DNS Spoofing":透過 Add 來進一步設定欺騙 DNS 的內容

      當針對列出的域名發出請求時
      Spoof DNS 插件會發現欺騙 IP 將請求重定向到該地址
      e.g. 想要把 www.demo.com 轉到 test.com 上
      Host Name:來源處(www.demo.com)
      Address:目的地(test.com)

  • Mirror Settings (設定鏡像)
      Mirror 會在瀏覽時將接收到的回傳內容複製一份 並保存在指定的路徑下
      可以透過 Import/Export 來匯入或匯出設定內容

      "Enable Mirror":啟用鏡像所有或指定回傳
      "Only for selected locations":透過 Add 來進一步設定指定站點
      "Save to":指定的存放的路徑

      每個站點匹配包含 Protocol, Host, Port, Path 與 Query

    • 溫馨提醒
      • 如果收到相同 URL 的兩個響應,則前面的同名文件將被覆蓋,確保響應內容將始終是最新的。
      • 啟用 Mirror 後,任何壓縮或編碼的響應將被解壓縮或解碼。
      • Mirror 不受上一篇提到的 Recording Settings 的記錄限制設定影響,當保存響應有限,將會丟失一些內容。
  • Auto Save Settings (設定自動保存)
      如果想讓 Charles 長時間監控網絡活動
      並且希望將記錄分解為可管理的單元
      或者避免因數據量過大而可能出現的內存不足的情況
      這個時候 Auto Save 將非常有用
      Auto Save 會按設定的時間間隔自動保存和清除記錄會話
      可以透過 Import/Export 來匯入或匯出設定內容

      "Enable Auto Save":啟動自動保存
      "Save interval":自動保存的時間間隔(分鐘)
      "Save to":指定的存放的路徑
      "Enable on startup":啟動 Charles 時保存
      "Start on a multiple of the Save interval":從保存間隔的倍數開始
        e.g. 保存時間間隔設定為15分鐘
        啟動該功能為10:10,則第一次保存時間將為10:15
        爾後則為每15分鐘保存一次
      "Save type":透過下拉式選單選擇保存格式

  • Client Process Settings (設定客戶端進程)
      如果想要查看不確定的原始進程請求
      則可以透過啟用 Client Process 來達成
      Charles 將會顯示發出請求的本地客戶端進程的名稱
      可以透過每個請求內的 Notes 區塊中來查看
      可以透過 Import/Export 來匯入或匯出設定內容

      "Enable Client Process":啟動 Client 端進程
      "Only for selected locations":透過 Add 來進一步設定指定站點

      每個站點匹配包含 Protocol, Host, Port, Path 與 Query

  • Compose (修改請求)
      Compose 可以在原有的請求基礎上進行修改
      包括了 URL, Method, Protocol version
      該請求發送後,可以對該請求再次修改

  • Compose New Request (新增請求)
      Compose New 可以無到有新增一個請求
      可設定的內容有 URL, Method, Content type, Protocol version
      該請求發送後,可以對該請求再次修改

  • Repeat (重複請求)
      如果想要測試更改後端後在瀏覽器中重複請求的內容
      透過 Repeat 重複請 將節省大量精力
      Repeat 可以選擇一個請求並重復發送到服務器
      重複請求是在 Charles 內部完成的
      因此該響應僅能在 Charles 中查看 無法在瀏覽器中查看

  • Advanced Repeat (進階重複請求)
      Advanced Repeat 擴展了 Repeat 功能
      提供了迭代次數和併發數的選項 對於負載測試非常實用

      "Iterations":迭代次數
      "Concurrency":併發數
      "Repeat delay (ms)":重複的延遲時間也可以使用固定範圍的時間

  • Validate (驗證) Comet

  • Publish Gist (發佈 Gist)
      Publish Gist 可以將將所選請求和響應透過 Gist 發布
      默認情況下 Gist 將匿名發佈 (也就是說發佈後將無法刪除)
      如果尚未設定任何內容使用該功能 將會顯示資訊

      可以在 Publish Gist Settings 中授權 Charles 使用 GitHub 帳戶進行發佈
      等等會詳細介紹 Publish Gist Settings

  • Import/Export Settings (導入/導出設置)
      可以透過 Import/Export 來匯入或匯出選定或是全部的設定內容
      主要分成了三大塊 包含了 Proxy, Tools, Preferences

  • Profiles (配置文件)
      當有不同的設定配置想要進行切換
      除了透過 Import/Export 的方式之外
      還可以透過設定 Profiles 來選擇最後設定的內容
      可以透過 Add 來新增配置文件的紀錄點
      被選定的 Active 將會記錄任何更改的設定內容 (可以想像成遊戲存擋點)
      但是為了確保重要的配置不會遺失 還是 Export 一份會比較妥當

  • Publish Gist Settings (設定發佈要點)
      在使用上面提到的 Publish Gist 之前
      必須先授權 Charles 使用您的 GitHub 帳戶發布 Gists
      點擊 Authorize 按鈕後 將會 GitHub.com 完成授予
      可以透過 Import/Export 來匯入或匯出設定內容

      "Publish as":發布時是否公開
      "Publish limit (MB)":發布的內容大小限制


結尾

這週的內容還是在介紹 Charles 的 Tools 選項欄中的功能
因為內容過多所以將 Tools 的分享內容給拆分了兩個部分
而在這週小弟把 Tools 後半段的功能也分享完畢了
下週將會介紹 mobile 的封包攔截使用方式

如果介紹的內容可能有遺漏或是錯誤,還請各位大哥大姐提點
小弟將繼續往下週邁進。 ─=≡Σ((( つ•̀ω•́)つ


參考文獻

官方網站 (載點)


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言