前言
有时候,调试的时候,本地环境没有问题,遇到外网环境出bug了,而且外网代码都是压缩过的,不好debug,可咋办呢?
那就得靠AutoResponder来调试了。
一、AutoResponder的作用
Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。
即访问页面的时候,根据匹配,将访问到你本地的文件,这样,跟踪代码、调bug的时候,轻而易举。
AutoResponder本质就是Fidder拦截了http的response,取代之以用户自定义的资源。
二、AutoResponder的规则
使用AutoResponder选项卡,你可以创建一个匹配规则和一个响应字符串,如果请求的URL地址跟你的匹配规则相匹配,
Fiddler就会自动执行这个对应的响应字符串。
小提示:
- 匹配规则会按照它在规则列表中出现的顺序进行匹配, 按+键可以使一个匹配规则向上移一项,按-键可以使一个匹配规则向下移一项。
- 使用右键菜单, 你可以导出一个包含了所有的匹配规则和对应响应字符串的后缀为 .FARX 的文件。
- 你也可以通过导入 .SAZ or .FARX 文件来创建基于以前创建的规则列表和响应列表.
- 你可以从会话列表中拖动一个会话到AutoResponder选项卡中来重新演示以前的响应. 你也可以选中一条规则,然后回车这样就可以来编辑一条规则。
- 你也可以直接从Windows的资源管理器中拖动一个文件到 AutoResponder选项卡中来为这些文件创建规则和响应
Demo:
字符串匹配。
注意:记得勾选【Unmatched requests passthrough】,这样不匹配的文件会直接跳过,
匹配规则
纯粹字符串
Fiddler将会按照不区分字母大小写来匹配字符串。
Demo如下:
Rule | Matches |
---|---|
* | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js |
shiqudou. | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js |
dev/ | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js |
script | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js |
跟上面的类似,Fiddler还有一个非字符串匹配的规则:NOT:
Demo如下:下面的都匹配。
Rule | Matches |
---|---|
NOT:shiqudou. | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js |
NOT:dev1/ | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js |
NOT:script2 | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js |
Exact匹配:
表达式以EXACT:完全匹配,为前缀,此匹配区分字母大小写
Demo如下:
Rule | Matches |
---|---|
EXACT:https://www.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js |
EXACT:https://www.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/Detail.js | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js (不匹配- 大小写不一样) |
EXACT:https://www.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/de | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js (不匹配- 子字符串不一样) |
正则表达式:
Fiddler支持以regex:为前缀的正则表达式语法,使用.+匹配一个或多个字符,使用.*匹配0个或多个字符,使用^匹配字符串开始位置,使用$匹配字符串结尾位置。
Demo如下:
Rule | Matches |
---|---|
regex:.+ | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js |
regex:.+\.js.* | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js |
regex:.+\.js$ | http://dev.shiqudou.cn/webapp/2.2.0/dev/script/log/tpl/detail.js&bar |
三、结语
通过AutoResponder将线上代码请求映射到本地,这样调试起来,问题是不是容易定位了呢。
对于处理紧急bug,非常适合快速web调试