如何成为Fiddler大神,请看这里!

发表于:2018-6-21 11:57

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:搜狗路飞    来源:搜狗测试

  什么是Fiddler
  Fiddler是一个HTTP/HTTPS协议调试代理工具, 它能够记录客户端和服务器之间的所有 HTTP/请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试WEB应用、修改请求的数据、修改服务器返回的数据。当浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过系统HTTP代理发送到服务器,Fiddler工作于七层中的应用层默认端口为8888,可以访问 http://127.0.0.1:8888 会显示Fiddler的页面。Fiddler工作原理如下:
  注意啦!!!
  踩过的坑:
  当Fiddler开启的时候电脑意外重启或者是Fiddler开启情况下关机再启动时,电脑启动后无法正常访问网络?
  真相只有一个:
  当Fiddler启动时候会设置代理服务,当Fiddler意外退出时这个代理服务不会自动关闭,所以在电脑启动后默认使用的还是Fiddler的代理服务并且Fiddler没有启动,所以就不能上网了。(请叫我名侦探扣烂)
  那么”名侦探扣烂”解决方法是啥?方法很简单,就是直接重新启动Fiddler就好了。
  如何处理JsonP请求返回?
  Fiddler 包含了一个脚本文件可以自动修改Http Request 和Response参数,这样我们就不需要手动下”断点”去修改了,实际上它是一个脚本文件CustomRules.js 位于: C:\Documents and Settings[your user]\My Documents\Fiddler2\Scripts下,你也可以在Fiddler 中打开CustomRules.js 文件, 启动Fiddler, 点击菜单Rules->Customize Rules…这种方式也可以编辑文件
  重点啦!!!
  背景:
  小编之前说目前的工作时负责测试信息流的APP,测试中经常需要修改请求的返回数据来测试客户端的显示和功能 ,图例:
  Question:
  返回中有”jsonp_callback_随机数”这样的一个参数,每次Request的callback都不同,而且请求还有超时时间,那么请问把问题解决一共要分几步?
  //第一步:获取本地自定义ResponseBody
  static function readFile(filename)
  {
  //TODO:目前只支持了英文读写,后续需要支持中文
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  var f = fso.OpenTextFile(filename,1);
  var s = "";
  while (!f.AtEndOfStream)
  s += f.ReadLine()+"\n";
  f.Close();
  return s;
  }

  //第二步:在OnBeforeResponse中替换请求中的content为自定义内容
  // author @pengyue
  if (oSession.HostnameIs("discover.ie.sogou.com") && oSession.uriContains('discover_agent')) {
  // 1. 匹配 url.
  // 2. 替换 response body - 替换请求content
  oSession.utilDecodeResponse();
  var body = oSession.GetResponseBodyAsString();
  var string = readFile("C:\\Users\\SuPengYue\\Desktop\\discover_agent");
  var index = body.indexOf('(');
  var b = body.slice(0, index);
  body = b + '(' + string + ')';
  oSession.utilSetResponseBody(body);
  }
  附带FiddlerScript进阶使用表:



上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号