在线调试利器Fiddler AutoResponse
有些时候在测试环境和线上环境的不同,导致在线系统的js难易跟踪调试特别是一些动态js脚本。fiddler这个工具给我减少了很多调试上的烦恼,尤其是强大的AutoResponder.
它可以抓取在线页面保存到本地进行调试,这大大减少了在线调试的困难。
下面以http://www.fiddler2.com/fiddler2为例简单描述一下操作步骤:
1、打开fiddler2,在浏览器中输入http://www.fiddler2.com/fiddler2。在fiddler2可以看到请求记录。
2、选择需要调试的页面,右键-Save-Response-Response body
3、修改需要调试的代码段。
4、点击fiddler AutoResponder Tab页面,勾选Enable automatic responses,把http://www.fiddler2.com/fiddler2/这面拖拽到AutoResponder 列表中。
默认 Rule Editor为精匹配。在第二个文本框中选择Find a file...,选择本地保存后的文件。
5、保存规则后,重新请求http://www.fiddler2.com/fiddler2/,在看Fiddler websessions 列表新的请求Result 301,说明请求的是本地缓存的文件。
这样就可以做我们想做的调试和修改了。
如果,你的请求是带动态参数的化,可以使用正则表达式。
如:请求规则:Regex:(?insx)^http://.*gravatar.*$
Regex:(?insx)^http://.*WF_ID=WFDevFx_GCUSTOMIZE&ticket=.*$
*下面是详细的过滤规则:
String Literals
Fiddler will match string literals (大小写不敏感)
Rule |
Matches |
* |
http://www.example.com/Path1/query=example |
EXAMPLE |
http://www.example.com/Path1/query=example |
path1/ |
http://www.example.com/Path1/query=example |
query |
http://www.example.com/Path1/q=Query |
Exact Match(精确匹配)
Fiddler supports an exact, 大小写敏感 match syntax for expressions which begin with exact:
Rule |
Matches |
EXACT:http://www.example.com/path |
http://www.example.com/path |
EXACT:http://www.example.com/path |
http://www.example.com/Path (No Match - mismatched case) |
EXACT:http://www.example.com/path |
http://www.example.com/path/q=Query (No Match - substring different) |
Regular Expressions(正则表达式)
Fiddler supports regular expression syntax for expressions which begin with regex:
Rule |
Matches |
regex:.* |
http://www.example.com/Path1/query=example |
regex:.*\.jpg |
http://www.example.com/Path1/query=foo.jpg&bar |
regex:.*\.jpg$ |
http://www.example.com/Path1/query=foo.jpg&bar (No Match - improper ending) |
regex:.*\.(jpg|gif|bmp)$ |
http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending) |
regex:(?insx).*\.(jpg|gif|bmp)$ |
http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending) |
抓取带参数的请求并重定向:
请求:http://v.sdo.com/login/game_login.htm?isgamelogin=true&server=1&abb=csws&returnUrl=%2fcsws%2fplay.htm
在Rule Editor:表示为:
regex:(?insx)^http://v.sdo.com/login/game_login.htm\?(?<args>.*)$
*redir: http://www.cnblogs.com/peak-weng/archive/2012/01/19/2325855.html?${args}
如图: