多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[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测试开发圈”,获取更多测试开发分享!***