Fiddler - 使用技巧(转)

转载:http://handyxuefeng.blog.163.com/blog/static/454521722016129613442

1 工作原理

Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据。Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展。

Fiddler 是以代理web服务器的形式工作的,它默认使用代理地址:127.0.0.1, 端口:8888。

2 使用技巧

2.1 显示IP的设置方法

方法:1.点击—Rules—Customize Rules …

           2.在CustomRules.js文件中查找字符串“static function Main()”

           3.在此函数末尾增加这行代码

1 FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");

   4.重启Fiddler后,寻找到ServerIP这项,表示增加成功

2.2 增加中间层接口显示列

在fiddler_script中的class Handlers域下增加以下代码:

 1 public static BindUIColumn("VIP_Interface", 250)
 2 function FillMethodColumn(oSession: Session): String {
 3     var pathAndQuery: String = oSession.PathAndQuery
 4     if(pathAndQuery.Contains("/vips-mobile/rest/")){
 5         var start: int = pathAndQuery.IndexOf("/rest");
 6         var end: int = pathAndQuery.IndexOf("?");
 7         return pathAndQuery.Substring(start,end-start);
 8     }else if(pathAndQuery.Contains("service=")){
 9         return new System.Text.RegularExpressions.Regex("(?<=service=).*?(?=&)").Match(pathAndQuery).Value;
10     }
11     return null;
12 }

点击save script,无需重启,就可以在当前窗口看到对应的VIP_Interface列:

2.3 Mock接口Response数据

前端测试还在为“中间层没返回数据”,“中间层返回数据不正确” 烦恼吗?Fiddler让你不再依赖,还等什么呢? 

现在教你如何使用Fiddler-breakpoints,Mock接口response数据,进行前端测试。

1、对fiddler进行设置,打开breakpoints:Rules-Automatic Breakpoints-After Response

2、请求数据,如获取商品列表

3、将response视图切换到textview,修改相关字段的值,如“stock”,点击Run to Completion,最后释放breakpoint

此时,可以看到前端商品列表是仅剩数据终于显示了,哈!完全不依赖接口后端数据的,前端UI测试走起。。。

mock前:

mock后:

2.4 抓取HTTPS数据包

1、在Fiddler选项中勾上捕获HTTPS连接

2、 安装CertMaker for iOS and Android插件

      下载地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2

3、PC安装HTTPS证书

4、手机设置代理到Fiddler,手机浏览器访问:http://ipv4.fiddler:yourport/

 点击 FiddlerRoot Certificate 链接,手机安装HTTPS证书

    参考地址:

    http://docs.telerik.com/fiddler/configure-fiddler/tasks/configureforandroid

    http://docs.telerik.com/fiddler/configure-fiddler/tasks/configureforios

2.5 通过Fiddler-Script模拟限速

Fiddler-Script是Fiddler的提供的一个强大的子脚本系统,这个系统可以调用fiddler的接口来完成开发者自定义的功能。

我们可以在fiddler-script提供的OnBeforeRequest方法里增加以下两句代码:

 

1 // Delay sends by 300ms per KB uploaded.
2 oSession["request-trickle-delay"] = "300";
3 // Delay receives by 150ms per KB downloaded.
4 oSession["response-trickle-delay"] = "150";

 

每一次我们针对自己写的网站测试限速时,可以根据自己的需要更改以上效果的值,比如延迟的时间越长,限速就越明显。

2.6 其他使用技巧

1、AutoResponder 文件代理
把请求的文件替换为本地的文件,点击save,重新发送请求(快捷键:R)
2、Composer 请求模拟、前后端接口联调
将请求拖入composer,可以根据需要选择get、post等发送方式,并修改参数,点击execute就可模拟发送请求,然后可用inspector查看模拟请求的响应
3、编码解码 TextWizard
4、js格式化
下载安装插件JavaScript Formatter 下载url:http://www.telerik.com/fiddler/add-ons 重启fiddler
选择一个返回js的请求,在inspector->response区域的textview框会显示压缩的js代码,选中该请求,右键点击Make JavaScript Pretty,再点击TextView框即可显示格式化的js代码,SyntaxView框还可高亮显示
5、请求对比
下载安装插件Traffic Differ 下载url:http://www.telerik.com/fiddler/add-ons 重启fiddler,新增了Differ选项卡
将两条不同的请求拖入differ面板即可进行对比

2.7  高亮显示缺省字段请求

Fiddler–> Rules --> CustomRules

在static function OnDone(oSession: Session)函数增加:

1 if (oSession.utilFindInResponse("must be provided", false)>-1 || oSession.utilFindInResponse("illegal arguments", false)>-1 || oSession.utilFindInResponse("invalid", false)>-1 || oSession.utilFindInResponse("error msg", false)>-1 || oSession.utilFindInResponse("must not be empty", false)>-1 || oSession.utilFindInResponse("is empty ", false)>-1 || oSession.utilFindInResponse("Parameter is missing", false)>-1 || oSession.utilFindInResponse("参数错误", false)>-1|| oSession.utilFindInResponse("参数格式不正确", false)>-1 || oSession.utilFindInResponse("格式错误", false)>-1 || oSession.utilFindInResponse("missing parameter", false)>-1 || oSession.utilFindInResponse("参数异常", false)>-1 || oSession.utilFindInResponse("to required type", false)>-1){
2     oSession["ui-backcolor"] = "orange";
3 }

原理是判断返回是否包含中间层常用的参数错误返回码。在fiddler上为橙色的请求,即为缺省参数的请求。

 

posted @ 2016-10-26 17:01  肉炒辣椒  阅读(740)  评论(0编辑  收藏  举报