《吐血整理》進階系列教程-拿捏Fiddler抓包教程(18)-Fiddler如何介面測試,媽媽再也不擔心我不會介面測試了
1.簡介
Fiddler最大的優勢在於抓包,我們大部分使用的功能也在抓包的功能上,fiddler做介面測試也是非常方便的。
領導或者開發給你安排介面測試的工作任務,但是沒有給你介面文檔(由於開發周期沒有時間出介面文檔),你會怎麼開展測試工作?這個時候你可以用Fiddler直接抓完包後,copy請求參數,修改下就可以了。那麼這個時候我們就會用到Fiddler的Composer選項卡。
2.Composer
Composer允許自定義請求發送到伺服器,可以手動創建一個新的請求,也可以在會話表中,拖拽一個現有的請求(滑鼠左鍵拖拽到Composer中出現綠色即可)。如下圖所示:
Composer支援手動構建http、https和ftp請求。點到composer選項卡介面,我們可以看到下面有一串英文。
use this page to compose a Request。you can clone a prior request by dragging and dropping a session from the Web Sessions list。
這句話的意思是,這個頁面用來構造一個請求。你可以通過拖拽Web Sessions list中的session勾選或克隆一個先前的請求。
看到這就明白了這個介面的用法。而且它指出,可以通過拖拽方式克隆請求,這意味著構建的時候不需要一條條輸入,可以先拖拽進來,再修改部分。
3.介面功能解析
根據下圖圖標註位置對Composer的介面功能進行說明。
1.請求方式:點開可以勾選請求協議是get、post等
2.url地址欄:輸入請求的url地址
3.請求頭:第三塊區域可以輸入請求頭資訊
4.請求body:post請求在此區域輸入body資訊
5.執行:Execute按鈕點擊後就可以執行請求了
6.http版本:可以勾選http版本
7.請求歷史:執行完成後會在右側History區域生成歷史記錄
具體詳細說明:
1.parsed
parsed:表示已經被解析的整個HTTP請求,包括請求行,請求頭和請求體。(就是最直觀的看到Request請求的展示),在英語中,有解析的意思,這裡根據請求協議的組成,分為了三個部分,也正好符合了parse這個單詞的語義
請求行:這裡可以設置你的請求方法,請求路徑,以及協議版本號
請求頭:在請求行下方,是請求頭
請求體(request body):這個框里設置請求體,如果是GET方法就不需要填
2.Raw(原始請求)
Raw:這個就是真實原始的HTTP請求,是沒有解析過的展示。Raw選項,提供一個簡單的文本框,在這裡,可以輸入你想要構建的http請求,在功能上與parsed有重合,一般都是使用parsed進行構建,這個選項卡很少用
3.ScratchPad
Scratchpad:可以存儲已經收集好的HTTP請求,可存儲多個不同的請求。這個英文的翻譯是暫存器,實際上它的功能也是如此,可以保存多條http請求。只需要拖動響應的http請求到它的文本框,fiddler就會自動將session的相關的資訊自動填寫到其中,可以在這個框中,對比請求。也可以在excute的時候,選中指定請求資訊,提交。
4.options
Optinos:Request Optinos請求選項。
- Inspec Session:使用同一個 Session 進行連接(同一個域名或者主機的情況下),檢查會話,當開啟此功能並重放的時候,會自動跳入Inspectors功能模組,進行檢查HTTP請求和響應。
- Fix Content-Length Header: 當發送 Post 請求的時候,自動加上或者修正 Header 中的 Content-Length。當使用POST請求進行重放的時候,如果沒有Content-Length的請求頭,Fiddler會自動加上此請求頭,如果有但是請求正文大小錯誤,則它會自動修正。默認勾選。
- Follow Redirect:自動根蹤 HTTP 狀態碼為 301 和 302 中返回帶 Location 的請求。會自動重定向301,302的請求。
- Automatically Authenticate:自動進行身份驗證,包括認證NTLM,http 401,http 407。
- Tear Off:將 Composer 變成一個浮動窗口。這個按鈕一點擊,整個composer會被剝離出fidder
UI Options:
Tear off:此功能是在原有的Fiddler功能選項裡面,將Composer這個功能彈出一個浮動窗口,如果不需要直接關閉這個窗口就會恢復原樣。
5.Log Requests(請求記錄)
Log Requests:記錄保存重放的HTTP請求。當這個勾選的時候,就會保存構造的記錄。構造產生的歷史記錄,會展現在選項下方。
6.Request Body
Request Body:這裡設置請求體的內容,一般用在POST請求。
Request Body數據類型
常見的post提交數據類型有四種:
1.第一種:application/json:這是最常見的json格式,也是非常友好的深受小夥伴喜歡的一種,如下
{"input1":"xxx","input2":"ooo","remember":false}
2.第二種:application/x-www-form-urlencoded:瀏覽器的原生 form 表單,如果不設置 enctype 屬性,那麼最終就會以 application/x-www-form-urlencoded 方式提交數
input1=xxx&input2=ooo&remember=false
3.第三種:multipart/form-data:這一種是表單格式的,數據類型如下
------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="text"
title
------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="file"; filename="chrome.png"
Content-Type: image/png
PNG ... content of chrome.png ...
------WebKitFormBoundaryrGKCBY7qhFd3TrwA--
4.第四種:text/xml:這種直接傳的xml格式
<!--?xml version="1.0"?--> <methodcall> <methodname>examples.getStateName</methodname> <params> <param> <value><i4>41</i4></value> </params> </methodcall>
7.Upload file
Upload file:此功能是自己在本地構造好一個HTTP請求,然後上傳到Fiddler中進行重放。
8.Excute(執行)
Execute:執行重放功能或者執行新編輯請求的按鈕。點擊這個按鈕之後,這個請求就會被發送出去了。
4.介面測試實戰
4.1POST API實戰
現在免費的介面很不好找,找了半天找到python里有一個,就用這個舉例吧。
介面資訊:
介面資訊 | 描述 |
---|---|
//httpbin.org/post | 介面地址 |
請求方式 | HTTP POST |
請求參數 | 請求參數格式為 JSON |
參數格式:
{
"form": {
"comments": "北京宏哥post介面測試",
"custemail": "[email protected]",
"custname": "北京宏哥",
"custtel": "13045032408",
"delivery": "15:45"
}
}
那麼如何使用Fiddler調試一個POST請求並帶有json格式的數據,具體操作步驟如下:
1.啟動Fiddler,打開Composer面板, 在Composer面板中的第一個下拉框中選擇POST請求方式,如下圖所示:
2.輸入請求介面的地址,如下圖所示:
3.在Request Headers中也可以輸入一些請求頭資訊,也可以不輸入,Fiddler它會幫你自動生成。
4.在Request Body中輸入請求的JSON數據,如下圖所示:
5.點擊Execute(執行),若在會話列表中看到結果返回200表示操作成功,如下圖所示:
6.在Inspectors裡面查看到請求響應的結果了,我們事先知道介面返回的是json格式數據,點擊響應部分的json將數據格式化,方便閱讀。如下圖所示:
4.2GET API實戰
介面資訊:一個帶參數的 get 請求,如在豆瓣網搜索:西遊記,url 地址為://www.douban.com/search?q=西遊記。具體操作如下圖所示:
1.啟動Fiddler,打開Composer面板, 在Composer面板中的第一個下拉框中選擇GET請求方式,如下圖所示:
2.輸入請求介面的地址,如下圖所示:
3.點擊Execute(執行),若在會話列表中看到結果返回200表示操作成功,如下圖所示:
5.小結
今天主要講解和分享了如何使用Fiddler進行介面測試的兩種請求方式,其他的請求類似!!!好了,今天時間也不早了,宏哥就講解和分享到這裡,感謝你耐心地閱讀!!!