[TOC]
<br>
### 設置HOSTS
#### HOSTS的原理
我們通過了解訪問一個網址的過程來理解HOST的原理:
**【step1】**: 瀏覽器訪問網絡域名 xxx.com
**【step2】**:域名解析成IP(首先檢查本地Hosts文件中是否有這個網絡域名映射關系,有則調用這個IP地址映射,如果沒有,再向已知的上級DNS服務器提出域名解析,解析成XXX.XXX.XXX.XXX的IP地址)
**【step3】**:使用IP定位到目標服務器
#### 為什么使用HOSTS?
通過上面這個過程,我們可以得知Hosts的請求級別比DNS高
假設我們的一些測試服務器IP沒有對外域名解析,我們是不能通過域名直接訪問的。如果我們通過IP來訪問,IP又不便于記憶,那么我們可以在本機host中將域名映射到測試服務器,豈不是就可以測試到對應服務器上的那套代碼了?
#### HOST在Fiddler中的配置
【Tools】-》【HOSTS】
配置示例,請參考一下配置格式

設置后,立刻生效,如上配置保存后,瀏覽器
訪問 test_host.com 時,就直接訪問到192.168.0.75 這臺服務器,默認端口80
訪問 ptqa.com 時,就直接訪問到192.168.0.75 這臺服務器的8000端口
**注意**:
1.本地windows的host路徑是:C:\Windows\System32\drivers\etc\HOSTS
2.HOSTS文件中,不能指定端口,但是在`Fiddler的HOSTS中,竟然可以指定端口`,實在太棒!
### 設置斷點
【Rules】->【Automatic Breakpoints】
#### Before Requests
請求發送出去前,進行斷點:我們可以在這個斷點中,修改客戶端請求信息
這里以google搜索為例,在Fiddler中篡改搜索關鍵字
1. 啟動Before Requests選項
2. 在google搜索框中搜索關鍵字“Fiddler”,提交請求

3. 在fiddler中,請求已被攔截,如下

4. 修改上圖搜索關鍵字q參數的值為“JMeter”后,點擊“Run to Completion”,查看瀏覽器搜索結果則已經變成了搜索“JMeter”的結果了。

#### After Responses
請求響應前,進行斷點:我們可以在這個斷點中,修改服務端響應信息
這里以訪問百度首頁,修改返回頁面中的title為例
1. 啟動After Response
2. 在瀏覽器中訪問百度首頁,此時在頁面響應前,已經被fiddler攔截

3. 修改上圖的響應內容中的title,然后點擊“Run to Completion”后,觀察瀏覽器中百度首頁的標題已經被篡改成功。

### 請求重定向
這里通過AutoResponder來設置,實現訪問A地址,Fiddler將請求轉到B地址
#### 精確匹配重定向
這里以訪問bejson,fiddler將請求轉到4399平臺官網為例
1. 在Fiddler中的AutoResponder tab中設置如下

2. 在瀏覽器中,訪問http://www.bejson.com/ ,結果可見如下,已成功重定向到了4399平臺官網。

#### 正則匹配,帶動態參數重定向
如果有些接口是根據參數來攔截的,怎么設置呢? 這里使用**通過正則表達式 REGEX**匹配

瀏覽器中訪問http://www.bejson.com/?k1=v1&ac=load_bank&k2=v2
Fiddler攔截到請求后,會重定向 redir 到4399平臺官網首頁,并且會在請求中帶上原來的請求參數

### 模擬響應內容
假設我們想直接篡改某個請求的返回值,我們一般有兩種方式
#### Create New Response...
1. 在AutoResponder tab 的 `執行動作`下拉選項中,選擇“Create New Response...”,點擊“Save”

2. 在設置窗口的“TextView”中,填寫如預期響應內容,“Save”后生效

```python
{
"msg": "Hello World!"
}
```
3. 瀏覽器中訪問 http://www.bejson.com/

#### Find a file...
1. 在本地創建響應文件,如Hello.json,內容為
```
{
"msg": "Hello World!"
}
```
2. 在AutoRespnder tab的`執行動作`下拉選項中,選擇“Find a file...”,選擇本地文件Hello.json

3. 瀏覽器中訪問 http://www.bejson.com/

### 加解密
Fiddler 自帶常見加解密功能,如
**響應內容解密**

解密后

**請求參數解密**
Fiddler中有個加解密工具 `TextWizard`

通過選擇參數,右鍵->"Send to TextWizard..."快捷將參數發送到“TextWizard”中,如

### 重發[修改]請求
選中Session->右鍵->Replay
<hr style="margin-top:100px">
:-: 
***微信掃一掃,關注“python測試開發圈”,獲取更多測試開發分享!***
- 前言
- Fiddler01-抓包原理介紹與配置
- Fiddler02-菜單功能介紹
- Fiddler03-輕松玩轉Fiddler
- Fiddler04-進階使用FiddlerScript
- Fiddler05-使用FiddlerScript對微信文章互動量進行監控
- Postman01-介紹與安裝
- Postman02-HTTP請求與響應
- Postman03-Collection管理與運行
- Postman04 -變量詳解
- Postman05-初級腳本使用
- Postman06-實例小結篇
- JMeter01-JMeter就是這么簡單
- JMeter02-一個完整實戰包你學會使用JMeter
- JMeter03-在JMeter中使用BeanShell編程
- JMeter04-圖形化和非圖形化運行JMeter
- JMeter05-生成美觀的HTML測試報告
- JMeter06-JMeter+Jenkins實戰
- JMeter07-解析session與cookie