測試工具 - 抓包

一、抓包概述

1. 抓包概念

抓包是將網絡傳輸發送與接收的數據包進行截獲、重發、編輯、轉存等操作,也用來檢查網絡安全等。下面小編就介紹幾種抓包軟件。

2. 常見抓包工具

測試爲什麼要學習Charles抓包?

  1. 能夠使用Charles來分析前後端問題
  2. 能夠使用Charles模擬弱網測試環境
  3. 能夠使用Charles的斷點構建異常的測試場景

一、Charles簡介

1. 什麼是Charles

  • Charles中文名字青花瓷,是一款Http代理服務器和Http監視器,當移動端在無線網連接中按要求設置好代理服務器,使所有對網絡的請求都經過Charles客戶端來轉發時,Charles可以監控這個客戶端各個程序所有連接互聯網的Http通信。
  • 特點:跨平臺、半免費
  • 免費版本:一是啓動等待十秒才能啓動,二是半小時重啓一次

2. Charles工作原理


前置步驟:
(1)需要運行Charles並配置代理
(2)在客戶端上面需要配置代理
步驟:
(1)有客戶端發送請求
(2)Charles接受再發送給服務端
(3)服務端返回請求結果給Charles
(4)由Charles轉發給客戶端

3. Charles主要功能

  • 支持HTTP/HTTPS代理
  • 支持流量控制
  • 支持接口併發請求
  • 支持重發網絡請求
  • 支持斷點調試

4. Charles優點(相對Fiddler)

  • Charles能夠支持Linux、macOS,fiddler不支持
  • Charles支持按域名和按接口查看報文,簡潔明瞭
  • Charles支持反向代理,fiddler不支持
  • Charles網絡限速可選擇網絡類型,選擇3G、4G、5G等
  • Charles可以解析AMF協議,一般用不到

二 、安裝與配置

1. Charles安裝

官網下載:官網


雙擊,下一步即可

2. Charles組件介紹



校驗是否否和w3c標準。



3. Charles設置

3.1 代理設置

3.2 Charles訪問控制

4. 客戶端設置

4.1 Windows代理設置


http://ihrm-test.itheima.net/

三、實戰

8.接口抓包測試工具Charles

1.1.11.抓取移動設備發送的Http請求.
1、先將移動設備連接到Charles客戶端。首先在電腦中輸入cmd打開命令行窗口,輸入ipconfig查看本機連接無線網絡的IP地址,這個地址作爲移動設備連接Charles客戶端的代理地址,

2、打開Charles客戶端,點擊Proxy->Proxy Settings菜單,可以設置移動設備連接到Charles的端口(8888),這樣移動設備代理配置需要的ip地址和端口號都有了。

3、打開手機wifi,設置所連接的wifi的代理網絡;wifi代理設置爲手動,代理的服務器ip填寫上一步驟中查看到的電腦ip,端口填寫上一步驟提到的charles的服務端口:

注意:移動設備配置之後,第一次通過手機訪問手機中的發送請求時,Charles會彈出提示框,提示有設備嘗試連接到Charles,是否允許,如果不允許的話,手機發送請求失敗,點擊Allow允許,這樣這個設備的IP地址就會添加到允許列表中,如果錯誤點擊了Deny可以重啓Charles會再此提示,或者通過Proxy->Access Control Settings手動添加地址,如果不想每個設備連接Charles都要點擊允許的話,可以添加0.0.0.0/0允許所有設備連接到Charles。

4、Charles是通過將自己設置成代理服務器來完成抓包的,勾選系統代理後,本地系統(如果通過瀏覽器發送請求)發送出去的請求都能被截取下來。因此,如果想只抓取手機APP發送的請求的話,可以不勾選WindowsProxy選項,這樣在測試時就不會被本機Http請求所幹擾。

5、如果想要抓取瀏覽器發送的請求包,勾選WindowsProxy選項之後還是抓取失敗,可能是瀏覽器沒有設置成使用系統的代理服務器,只要設置成使用系統的代理服務器,或者將瀏覽器的代理服務器設置成127.0.0.1:8888也可以成功。
1.1.12.啓動手機,打開軟件,就可以進行聯網抓包測試
Charles提供兩種查看封包的頁籤,一個是Structure(結構),另一個是Sequence(序列),Structure用來將訪問請求按訪問的域名分類,Sequence用來將請求按訪問的時間排序。任何程序都可以在Charles中的Structure窗口中看到訪問的域名。

1.1.13.過濾不必要的網絡包
在抓取手機發送的請求時,有許多請求包是對圖片等不需要關注的資源的請求,我們只想對指定目錄服務器上發送的請求進行抓取,這時候就可以通過過濾網絡包的方式實現。有兩種實現方式:
1)選擇Proxy->Recording Settings菜單,然後在include欄添加需要抓取包的指定服務器請求協議、地址、端口號,也可以在exclude欄添加不抓取包的地址。

在主界面的中部的 Filter 欄中填入需要過濾出來的關鍵字。例如我們的服務器的地址是:http://blog.csdn.net, 那麼只需要在 Filter 欄中填入 csdn 即可。
1.1.14.Charles抓包詳解

Filter : 過濾,可以輸入關鍵字來快速篩選出 URL 中帶指定關鍵字的網絡請求

Overview : 查看這次請求的詳細內容,例如耗時詳細列車了請求開始時間、結束時間,響應開始時間、結束時間,總耗時、DNS耗時、網絡延時等。

對於Size也詳細列出了請求頭大小、響應頭大小、壓縮比例等內容。

URL:進行網絡請求的鏈接;

Status:當前狀態,complete表示請求完成;

Responce Code:返回碼。不同的接口,不同的請求結果,返回碼都不同;

Protocol:使用的協議;

Method:請求方式,如GET請求,POST請求等;

Kept Alive:判斷當前是否正在鏈接(活躍);

Content-Type:發送的內容類型,如這裏用的是XML文本,以UTF8的方式發送;

Client Address:客戶端的IP地址;

Remote Address:遠程服務器的IP;

Timing:

Request Start Time:請求開始的時間;

Request End Time:請求結束的時間;

Response Start Time:返回開始的時間;

Response End Time : 返回結束的時間;

Duration : 總時間;

Size:

Request Header :請求的頭部大小;

Response Header:返回的頭部大小;

Request : 請求發送的大小;

Response:返回數據的大小;

Total:所有數據大小;

Request Compression : 請求壓縮;

Response Compression : 返回壓縮;

Request : 查看請求內容(底下的Headers,Query String,Cookies,Raw。)

Headers:發送請求的頭部信息;

Query String : 發送參數列表;

Cookies: 瀏覽器緩存;

Raw:發送的原生數據,包括了頭部和參數;

Reponse : 查看響應內容

Headers:是返回的頭部信息;

Text:返回信息(除去頭部)後的文本;

Hex:返回信息的16進製表示;

XML:我返回的數據是XML。如果你返回的是JSON,這裏就會顯示JSON;

XML Text:如果你返回JSON,這裏會顯示JSON Text;

Raw:返回的所有原生數據,包括頭部;

Summary: 查看發送數據的一些簡要信息(主機,狀態碼,數據的類型,header和body大下,加載時間,總時間)

Chart: Summary中簡要信息以圖表形式展示

Notes: 其他信息

1.1.15.Charles常用的功能總結
charles抓包詳解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章