fiddler官网 https://www.progress.com/
官网下载fiddler https://www.telerik.com/download/fiddler/fiddler4
fiddler插件下载 https://www.telerik.com/fiddler/add-ons
Fiddler无所不能——之测试开发攻城狮必备神器
1、模拟真实网络环境4g网、3g网络、2g网络、弱网等
开启弱网Rules——Performance——勾选Simulate Modem Speeds
关闭弱网Rules——Performance——取消勾选Simulate Modem Speeds
自行设置指定的上行下行网速
2、并发请求,测试并发请求导致的问题
右击——Replay——按住shift再点击Reissue Requests,弹出框设置并发次数5次并确定,可以看到同一时间相同请求发送了5次,这就是并发请求,
3、接口测试、接口调试(手动配置接口参数/抓的接口手动拖至composer即可)
4、环境映射(安装插件stave)
<1>环境切换:当我手机装的是测试环境包/线上环境包,想映射到线上环境/测试环境,可以通过此途径
<2>旧版本兼容:新版本已测试通过,想测老版本兼容,可以下载线上包,通过映射到测试环境,可以达到线上前端兼容新服务测试
5、mock服务(前后端联调、前端测试、页面适配测试)
项目版本中,当我们前端已做好,后端未好时,我们不能干坐着等后端好了再调试或再测试,这时我们就可以用上这个方法了
<1>桌面新建json/txt接口响应数据,设置测试数据,与接口定义文档一致
<2>将要测接口拖至右边AutoResponder窗口中,勾选Enable rules,勾选此接口并选中,选find a file…(图2)然后选响应文件(图1)
<3>设置完成后,app前端再次请求此接口,查看响应体(图3),并查看页面展示数据,正是图1设置的响应体
6、模拟定位
有时我们想测试下app的其它城市定位;或者其它城市切换至本城市
<1>抓取美团小程序定位接口,目前定位上海
https://i.meituan.com/locate/latlng/34.287145,108.948189.json?isMars=false
<2>百度地图查找要定位城市的坐标点34.287145,108.948189
<3>fiddler底部栏中bpu https://i.meituan.com/locate/latlng 回车后
<4>小程序中再次请求定位这个接口,此时拦截住请求,快速修改上海坐标点为西安坐标点,点run to completion,接口响应定位数据为西安
<5>再次查看小程序里,首页定位到西安了,达到目的了,哈哈哈哈哈
7、fiddler查看显示接口请求的ServerIP
1. 运行fiddler,菜单,Rules->Customize Rules…或者点击右侧tab
“FiddlerScript”
2、Ctrl+F查找“static function Main()”字符串,然后添加下面这行代码:
FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");
7、模拟失败场景测试(登录失败、查询页面失败等)
我们平时测试重点只会关注正常成功逻辑,而恰恰忽略了异常失败逻辑,并且对于异常测试无从下手,这时我们就要拿出秘密武器了
<1>抓取要测试的接口,我们可以看到接口是通过的
<2>右侧切换至AutoResponder页面,拖拽<1>中接口至AutoResponder页面中间区域,勾选顶部3个选框,底部选择要模拟的报错形式,点save保存
<3>这时就设置好了,重新请求此接口或退出app重新进,再次请求此接口,我们回看到左侧抓包区域,此接口报错502,就达到了模拟接口502的效果
8、拦截http请求,设置断点
使用Fiddler进行HTTP断点调试是fiddler一强大和实用的工具之一。通过设置断点,Fiddler可以做到:
①修改HTTP请求头信息。例如修改请求头的UA,Cookie,Referer信息,通过“伪造”相应信息达到相应的目的(调试,模拟用户真实请求等)。
②构造请求数据,突破表单的限制,随意提交数据。避免页面js和表单限制影响相关调试。
③拦截响应数据,修改响应实体。
设置断点共有两种方式:
①fiddler菜单栏->rules->automatic Breakpoints->选择断点方式,这种方式下设定的断点会对之后的所有HTTP请求有效。有两个断点位置:
1)before response。也就是发送请求之后,但是Fiddler代理中转之前,这时可以修改请求的数据。
2)after response。也就是服务器相应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果。
3)如何消除命令呢?点击Rules->Automatic Breakpoint->Disabled
②命令行设置断点
1)bpu在请求开始时中断
命令行输入:bpu www.baidu.cm(拦截www.baidu.com请求)
解除拦截:输入命令:bpu
2)bpafter在响应到达时中断
命令行输入:bpafter www.baidu.cm(拦截www.baidu.cm返回值)
解除拦截:输入命令:bpafter
3)bps中断HTTP响应状态为指定字符的全部session响应
命令行输入:bps 302
解除拦截:输入命令:bps
4)bpv/bpm中断指定请求方式的全部session响应