天天看點

Fiddler 進行接口測試

一、Fiddler

1.工具欄中各個按鈕的含義

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps1.jpg)

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps2.jpg):配置windows中特定應用的抓包(預設抓取不到)

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps3.jpg):添加備注資訊

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps4.jpg):重新發起指定請求

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps5.jpg):清空指定會話内容

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps6.jpg):斷點放行

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps7.jpg):模式切換

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps8.jpg):相應資料解碼

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps9.jpg):顯示會話數

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps10.jpg)

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps11.jpg):抓取指定程序發出的請求

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps12.jpg):關鍵字查找

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps13.jpg):儲存目前的會話資料

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps14.jpg):截圖+計時

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps15.jpg):打開浏覽器

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps16.jpg):清空緩存

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps17.jpg):加密/解密

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps18.jpg):浮窗顯示詳細内容

2.任務面闆功能詳解

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps19.jpg)

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps20.jpg):fiddler腳本

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps21.jpg):日志

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps22.jpg):過濾規則配置

Use filters:啟用過濾規則

Hosts:

show only the following hosts 隻展示指定的hosts

Hide the following hosts:隐藏指定的hosts

Flag the following hosts:标記指定的hosts

Clients process

Request headers

Response headers

Breakpoints

Response status code

Response content-type

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps23.jpg):時間線

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps24.jpg):會話資料統計

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps25.jpg):請求+響應詳情

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps26.jpg)

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps27.jpg)

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps28.jpg):模拟服務端響應

添加響應規則,抓取到的請求如果滿足已啟用規則,則會被fiddler攔截,并傳回規則中設定的相應内容(請求不會被發送伺服器)

可以手動輸入規則内容,也可以直接從會話清單中拖拽到autoresponder中

Regex:使用正規表達式進行比對

Exact:精确比對

Method:比對請求方法

Header:比對請求頭

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps29.jpg):模拟用戶端請求

可以手動輸入規則内容,也可以直接從會話清單中拖拽到composer中

添加規則後,點選execute按鈕即可發送請求

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps30.jpg):抓取移動端流量

3.斷點

在rules菜單下選擇automatic breakpoints

(1)請求前斷點,選擇before request(快捷鍵F11)

請求發出後會被fiddler攔截(此時請求還未被發送到服務端),攔截後就可以修改請求内容,修改完成後點選請求資訊視窗中的run to completion按鈕或工具欄中的go按鈕即可放行(此時修改後的請求會被發送到服務端)

(2)響應後斷點,選擇after response(快捷鍵Alt+F11)

服務端響應請求後會被fiddler攔截(此時響應内容還未被發送到用戶端),攔截後就可以修改響應内容,修改完成後點選響應資訊視窗中的run to completion按鈕或工具欄中的go按鈕即可放行(此時修改後的響應資訊會被發送到服務端)

(3)關閉斷點功能,disabled(快捷鍵Shift+F11)

4.常用指令

(1)?+關鍵字,從protocol、host、url三個字段中進行模糊比對,高亮顯示比對到的請求

(2)@+關鍵字,從host字段中進行模糊比對,高亮顯示比對到的請求

(3)<+數字,與body的大小作比較,高亮顯示小于指定數字的請求

(4)>+數字,與body的大小作比較,高亮顯示大于指定數字的請求

(5)=+狀态碼,與result作比較,高亮顯示等于指定狀态碼的請求

(6)cls,清空目前會話清單中的所有請求

(7)dump,轉存目前會話清單的所有請求資料

(8)Select+空格+關鍵字,從content-type中進行模糊比對,高亮顯示比對到的請求

(9)start,開啟代理

(10)stop,關閉代理

(11)bpu+空格+關鍵字,從protocol、host、url三個字段中進行模糊比對,攔截比對到的請求

(12)bpm/bpv+空格+method,攔截指定的方法的請求

(13)bps+空格+狀态碼,攔截指定響應狀态碼的請求

(14)bpafter+空格+關鍵字,從protocol、host、url三個字段中進行模糊比對,攔截比對到的響應

(15)g/go,放行目前被攔截的請求或響應

(16)Alt+Q:光标定位到指令行的快捷鍵

5.Fiddler允許移動端抓包

(1)Tools--options--https:全部勾選

(2)Tools--options--connections:

勾選allow remote computers to connect

端口号預設:8888

(3)移動端和PC端在同一個網絡下

(4)移動端設定代理ip為PC的ip,端口号為:8888(與fiddler中設定的端口号保持一緻)

(5)如果要抓https的包,在移動端通路: http://<pc端ip>:8888,下載下傳證書安裝,并設定信任證書

(6)如果所有配置都已配好,還是無法正常抓包,可以檢視移動裝置型号是否需要額外配置

6.模拟弱網

(1)在FiddlerScript中搜尋m_SimulateModem,修改上傳和下載下傳的延遲時長,即可達到模拟弱網的目的

二、HTTP協定

  • 超文本傳輸協定
  • 檢視網頁源代碼:滑鼠右鍵選擇'檢視網頁源代碼'

    常見标簽:​

    ​input img i a button link span​

  • http的特點

    (1) 無連接配接(不是不連接配接,是不保持連接配接)

    (2) 媒體獨立(約定的 mime-type)

    (3) 無狀态(沒有記憶力)

  • http和tcp /ip的差別

    (1) tcp協定傳輸資料,HTTP進行解釋

    (2) http是無連接配接,tcp是有連接配接

    (3) http是無狀态,tcp是有狀态

    (4) http是應用層協定,tcp是傳輸層協定

  • http請求内容

    (1) request

    Request method: 請求方法 (get post)

    Request URL: 請求位址

    Request headers: 請求頭

  • Content-type:指定接收資料的格式Accept:指定可接受資料類型

    Accept-language:指定用戶端可接受語言類型

  • Accept-length:指定用戶端可接受的資料長度
  • Accept-encoding:指定用戶端可接受的編碼格式
  • Cookies:存放在用戶端本地的身份認證資訊
  • Host:伺服器主機位址
  • User-agent:用戶端系統和系統版本,浏覽器和浏覽器版本
  • Referer:請求是從哪裡發出來的,可以用來鑒别爬蟲資料

Request body: 請求體(post 要傳的參數一般放在body中進行傳輸)

  • Application/x-www-form-urlencoded:表單資料
  • Mutipart-form:表單資料(可傳檔案),

(2) response

Response status: 響應狀态碼

Response headers: 響應頭

Response body: 響應體

(3) ​

​常見請求方法​

get:從伺服器擷取資訊

 傳參方式:一般直接在url上面跟要傳的參數,參數和路徑之間用?間隔,不同參數之間用&間隔

​post:修改伺服器的資訊​

 傳參方式:一般在body 中跟要傳的參數

​ form-data:表單形式,既可以傳文本,也可以傳檔案

​ **x-www-form-urlencoded:表單形式,隻能傳文本,不能傳檔案 **

 Raw:支援多種格式:

text:純文字

javascript:js腳本

​json:按照json資料格式的要求傳參​

html:網頁源代碼

xml:xml配置檔案

binary:二進制檔案

put:更新伺服器的文檔資訊

patch:更新伺服器文檔的局部資訊

delete:删除指定頁面

head: 擷取響應頭,無響應體

Connect:預留給代理伺服器用來建立連接配接管道

Options:允許檢視服務端性能

Trace:回顯伺服器的請求,用于測試診斷

資料>>>>

  • Fiddler接口抓包神器使用教程
  • ​​GitBook​​ 基本原理.html

三、Json資料

1.json(javascript object notation------js對象表示法) 是一種輕量級資料交換格式,獨立于語言和平台.

2.json文法規則

(1)鍵值對(同一層中key不能重複)

(2)鍵和值之間用冒号間隔

(3)每組資料間用逗号隔開

(4)值可以是:字元串,數字,數組,對象,bool值,null