[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