腾讯优测优分享 | 这些年,我们追过的 fiddler

腾讯优测是专业的移动云测试平台,提供全面兼容性测试,远程真机租用,漏洞分析等多维度的测试服务,旗下优分享提供大量的移动研发及测试相关的干货!

一、fiddler原理简介

fiddler是目前最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置 CGI 请求的断点,甚至修改输入输出数据。fiddler是一个客户端桌面工具,不仅能监听浏览器对网页的请求和对浏览器的响应(http和https请求),而且可以监听其他程序(比如java桌面应用)的http请求。fiddler是在web server和web browser之间搭了一层proxy,所有的请求都会经过它,如下图所示:

二、fiddler常用技巧

1、 fiddler链接手机代理

勾选Tools->Fiddler Options…中Connections的Allow remote computers to connect选项,并设置端口号(默认8888,也可以设置为其他端口号)。点击ok按钮后重启fiddler即可生效。
腾讯优测优分享 | 这些年,我们追过的 fiddler

2、fiddler中设置断点修改request

中断所有会话
第一种:
打开Fiddler,点击Rules-> Automatic Breakpoint ->Before Requests(这种方法会中断所有的会话)
消除:点击Rules-> Automatic Breakpoint ->Disabled
第二种:
腾讯优测优分享 | 这些年,我们追过的 fiddler

消除:再点两次红色框区域即可消除
第三种:F11
消除:Shift+F11
中断指定会话
在命令行中输入命令:bpu http://888.qq.com/v1.0/my/record.shtml?mod=buyrecord(这种方法只会中断http://888.qq.com/v1.0/my/record.shtml?mod=buyrecord请求)
腾讯优测优分享 | 这些年,我们追过的 fiddler

消除:在命令行中输入命令bpu

3、Fiddler中设置断点修改response

中断所有会话
第一种:打开Fiddler,点击Rules->Automatic Breakpoint->After Response(这种方法会中断所有的会话)
消除:点击Rules->Automatic Breakpoint->Disabled
第二种:
腾讯优测优分享 | 这些年,我们追过的 fiddler

消除:再点一次红色框区域即可消除
第三种:Alt+F11
消除:Shift+F11
中断指定会话
在命令行中输入命令:bpafter http://888.qq.com/v1.0/my/record.shtml?mod=buyrecord
腾讯优测优分享 | 这些年,我们追过的 fiddler
消除:在命令行中输入命令bpafter

4、自动重定向AutoResponder到本地文件

场景:测试环境没有足球对阵,此时需要使用IDC的对阵来测试时
第一步:IDC环境用Fiddler查看页面的数据流列表,找到这个文件的session
腾讯优测优分享 | 这些年,我们追过的 fiddler
第二步:将IDC的文件保存到本地
在这个session上右键点击,选择“Save – Response –Response Body…”,将js文件的内容保存到本地。记住存的位置,下面我们会用到这个保存下来的文件。
腾讯优测优分享 | 这些年,我们追过的 fiddler
第三步:切换到beta环境,开启Fiddler的请求自动重定向功能
腾讯优测优分享 | 这些年,我们追过的 fiddler
第四步:创建重定向规则,将目标是这个url的HTTP请求重定向到本地文件
可以通过“Add Rule”按钮手动添加规则,如果这个URL已经出现在我们的session列表中,可以直接拖动过来,根据需要修改url(如下图,由于红框部分的值是变动的,所以在添加规则时,可以去掉红框内容进行匹配)
腾讯优测优分享 | 这些年,我们追过的 fiddler
下图解释:
当URL为:http://tc.w-caipiao.tenpay.com/p/index.php?c=ball&m=getListV2&type=all&lotteryName=gunqiu&ajax=true&cms_where=1367&vb2ctag=4_2061_3_1866&jindou=1
返回200,使用和Session 7一模一样的内容返回
腾讯优测优分享 | 这些年,我们追过的 fiddler
这里,我们需要修改这个规则,当url为
http://tc.w-caipiao.tenpay.com/p/index.php?c=ball&m=getListV2&type=all&lotteryName=gunqiu&ajax=true&cms_where=1367&vb2ctag=4_2061_3_1866&jindou=1时,选择第二步中存在本地的文件作为返回的body内容,这样,当测试环境请求这个url时,body内容将会是第二步本地文件的body内容,就可在测试环境使用IDC的对阵进行测试

腾讯优测优分享 | 这些年,我们追过的 fiddler
保存后规则生效
腾讯优测优分享 | 这些年,我们追过的 fiddler
如下图,请求url底色变灰,说明生效了。
腾讯优测优分享 | 这些年,我们追过的 fiddler
遇到的问题:
a:步骤二中,拷贝出来的文件内容是乱码
腾讯优测优分享 | 这些年,我们追过的 fiddler
解决办法:点击fiddler的Inspectors的Response区域进行转码后再重新保存即可。
腾讯优测优分享 | 这些年,我们追过的 fiddler
b:步骤四中,去掉url后面变量值后,匹配失败,无法访问本地文件
腾讯优测优分享 | 这些年,我们追过的 fiddler
解决办法:将规则中的EXACT:去掉即可,去掉之后匹配成功。
腾讯优测优分享 | 这些年,我们追过的 fiddler

拓展:
前缀为“EXACT:”表示完全匹配(大小写敏感)
无前缀表示基本搜索,表示搜索到字符串就匹配
前缀为“REGEX:”表示使用正则表达式匹配

5、过滤会话

当遇到请求较多,看的眼花缭乱时,可以启用fiddler强大的过滤机制,操作方法如下:
腾讯优测优分享 | 这些年,我们追过的 fiddler

6、自定义列

如:需要增加远程IP、referer、ReturnedCookie列
通过Rules->Customize Rules 或快捷键Ctrl+R
腾讯优测优分享 | 这些年,我们追过的 fiddler
在rule规则脚本中搜索static function Main()函数,添加3列:远程IP、referer、ReturnedCookie
腾讯优测优分享 | 这些年,我们追过的 fiddler

7.fiddler模拟限速

原理:Fiddler的模拟限速是在客户端请求前来自定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和上传速度,从而达到限速的效果。
限速操作:勾选Rules->Performance->Simulate Modem Speeds
腾讯优测优分享 | 这些年,我们追过的 fiddler
限速的代码:Rules->Customize Rules 或快捷键Ctrl+R
通过关键字m_SimulateModem找到以下代码。
腾讯优测优分享 | 这些年,我们追过的 fiddler

注意,修改完存档之后,原本已经勾选的Simulate Modem Speeds 会被取消勾选,要记得再到Rules->Performance->Simulate Modem Speeds勾选才生效。
_________________________________________________________________________________
腾讯优测是专业的移动云测试平台,为应用、游戏、H5混合应用的研发团队提*品质量检测与问题解决服务。不仅在线上平台提供自动化兼容性测试、云手机远程租用与调试、漏洞分析、自动化测试工具Xtest等多种质量检测工具,更为VIP客户配备了专家团队提供定制化综合测试解决方案。

上一篇:对LevelDB的“升级版”存储引擎RocksDB的调研成果


下一篇:【java&c++】父子类中同名函数的覆盖问题