[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】
配置示例,请参考一下配置格式
![](https://box.kancloud.cn/240cd5955b55db5433fd732e7977b305_603x291.jpg)
设置后,立刻生效,如上配置保存后,浏览器
访问 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”,提交请求
![](https://box.kancloud.cn/2fab421e021c474626ecb80f66f77155_761x511.jpg)
3. 在fiddler中,请求已被拦截,如下
![](https://box.kancloud.cn/f016848bb0e9e80841c7ad11f827c082_1433x580.jpg)
4. 修改上图搜索关键字q参数的值为“JMeter”后,点击“Run to Completion”,查看浏览器搜索结果则已经变成了搜索“JMeter”的结果了。
![](https://box.kancloud.cn/69182b6331b282bbedee4aba9115dca9_874x402.jpg)
#### After Responses
请求响应前,进行断点:我们可以在这个断点中,修改服务端响应信息
这里以访问百度首页,修改返回页面中的title为例
1. 启动After Response
2. 在浏览器中访问百度首页,此时在页面响应前,已经被fiddler拦截
![](https://box.kancloud.cn/ceffdfbdd926933e793d8febc922d1a6_1072x706.jpg)
3. 修改上图的响应内容中的title,然后点击“Run to Completion”后,观察浏览器中百度首页的标题已经被篡改成功。
![](https://box.kancloud.cn/42fdc46cd6d944ea1597d69ccd632cd5_616x383.jpg)
### 请求重定向
这里通过AutoResponder来设置,实现访问A地址,Fiddler将请求转到B地址
#### 精确匹配重定向
这里以访问bejson,fiddler将请求转到4399平台官网为例
1. 在Fiddler中的AutoResponder tab中设置如下
![](https://box.kancloud.cn/bbae3e1c6b456728bc673deedd65e713_449x379.jpg)
2. 在浏览器中,访问http://www.bejson.com/ ,结果可见如下,已成功重定向到了4399平台官网。
![](https://box.kancloud.cn/fd118014468f1611385bbd0217a819f1_817x310.jpg)
#### 正则匹配,带动态参数重定向
如果有些接口是根据参数来拦截的,怎么设置呢? 这里使用**通过正则表达式 REGEX**匹配
![](https://box.kancloud.cn/72f3a30c838478dc3b41e0f2006c0c37_449x329.jpg)
浏览器中访问http://www.bejson.com/?k1=v1&ac=load_bank&k2=v2
Fiddler拦截到请求后,会重定向 redir 到4399平台官网首页,并且会在请求中带上原来的请求参数
![](https://box.kancloud.cn/b0be3a333adbdf3dc501b9c66ec92e93_597x147.jpg)
### 模拟响应内容
假设我们想直接篡改某个请求的返回值,我们一般有两种方式
#### Create New Response...
1. 在AutoResponder tab 的 `执行动作`下拉选项中,选择“Create New Response...”,点击“Save”
![](https://box.kancloud.cn/bf018c1f3c7aa7f46f4f9e17fcc2d429_447x379.jpg)
2. 在设置窗口的“TextView”中,填写如预期响应内容,“Save”后生效
![](https://box.kancloud.cn/d5e58daadc0ec6ab92188d15197824c7_701x207.jpg)
```python
{
"msg": "Hello World!"
}
```
3. 浏览器中访问 http://www.bejson.com/
![](https://box.kancloud.cn/ae980d90e93d85a316c213aa7e4ff6d9_328x114.jpg)
#### Find a file...
1. 在本地创建响应文件,如Hello.json,内容为
```
{
"msg": "Hello World!"
}
```
2. 在AutoRespnder tab的`执行动作`下拉选项中,选择“Find a file...”,选择本地文件Hello.json
![](https://box.kancloud.cn/e3eec1ba2c083aadea85333b554963f6_448x357.jpg)
3. 浏览器中访问 http://www.bejson.com/
![](https://box.kancloud.cn/ae980d90e93d85a316c213aa7e4ff6d9_328x114.jpg)
### 加解密
Fiddler 自带常见加解密功能,如
**响应内容解密**
![](https://box.kancloud.cn/d059c1e59dbb4f76e7ee4ab82c794a21_589x422.jpg)
解密后
![](https://box.kancloud.cn/cbf969e8f54eb2938896b9c13cc4852a_575x325.jpg)
**请求参数解密**
Fiddler中有个加解密工具 `TextWizard`
![](https://box.kancloud.cn/334be7e2fb1da9bc14746706dca2592d_1208x499.jpg)
通过选择参数,右键->"Send to TextWizard..."快捷将参数发送到“TextWizard”中,如
![](https://box.kancloud.cn/ecd74de21b1784dcd0d55d8110ea052b_1247x505.jpg)
### 重发[修改]请求
选中Session->右键->Replay
<hr style="margin-top:100px">
:-: ![](https://box.kancloud.cn/331f659e8e6cddb0d9f182e00e32803f_258x258.jpg)
***微信扫一扫,关注“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