ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

fiddler的mock数据与二次开发示例

2021-11-16 20:34:40  阅读:205  来源: 互联网

标签:fiddler 示例 bpRequestURIs bpRequestURI bpu 二次开发 拦截 断点


fiddler的使用记录

fiddler了解

  • 上官网下载工具,然后安装使用,https://www.telerik.com/fiddler,如果对该工具不熟悉,还有直白的教程,看过比较多,这个人讲的还可以:https://blog.csdn.net/pengjiangchun/article/details/106841499

  • 暂时该工具对我而言,仅仅是作为mock数据而使用到,最常见的一个场景即,产品后端代码还未更新的情况下,前端代码已经编写完成,此时若需要自测,就可以通过多种手段进行构造后台返回的假数据,验证前端的UI与性能等是否符合预期。

  • fiddler简单原理可以诠释为:在客户端与服务器之间新增一个代理服务器-fiddler,即通常客户端与服务器之间相互发送数据,现在都会先经过fiddler,由fiddler转发出去或者拦截、修改数据信息再转发,我们通常就是用该工具来实现mock(篡改)数据,以实现部分情况下不依赖后端而验证前端等功能,大概如下代理结构:

实例使用

  • 断点:理解了该工具所处的位置之后,首先理解代理首先是断点,依据我们的需要,是在客户端的请求发到服务端之前断点拦截,还是在服务端回复信息之后拦截,或者是暂时不用该工具,就选择如图的disabled,理解这一点之后,该我选择在客户端请求发到服务端之前拦截,选择改变包的内容,使得服务端收到的是我所期望他收到的内容。

  • bpu:拦截的URL信息,格式如下,输入后回车键后生效

    bpu url url //中间空格不可省略,之所以空格,是后面我定制的可以连续拦截两个以上URL时候定制的内容,因为该工具默认只能拦截单个请求
    
  • 通过上面两个步骤执行之后,然后就可以在对应的URL中看到自己编排的内容返回到页面上了,当然比如在choose response这里选择一些早就定制好的内容返回给客户端,比如给个HTTP/404 Not Found之类的。总而言之,常用的即如此过程。

fiddler二次开发应用

  • 简单介绍对该工具的一个二次开发过程,需求如下:改变该工具一次只能拦截单个断点的限制,实现一次设置多个断点,需要修改的地方如下,其他的功能也可以用java语言进行修改。
//第一处:找到开头的代码注释后新增后面代码:
 /*
    BindPref("fiddlerscript.ephemeral.bpRequestURI")
    public static var bpRequestURI:String = null; # zch改过第1处
    */
   // 设置数组的长度为10 10个阻塞的命令,内容为空格,和bpu命令用空格分割保持一致    
    BindPref("fiddlerscript.ephemeral.bpRequestURI")
    //数组的长度10,10个阻塞的命令,内容为空格,和bpu命令用空格分割保持一致
    public static var bpRequestURIs:String[] = [" "," "," "," "," "," "," "," "," "," "];
//第二处:找到开头的代码注释后新增后面代码:
        /*
        case "bpu":
            if (sParams.Length<2) {bpRequestURI=null; FiddlerObject.StatusText="RequestURI breakpoint cleared"; return false;}
            bpRequestURI = sParams[1]; 
            FiddlerObject.StatusText="RequestURI breakpoint for "+sParams[1];
            return true;
            zch改过这里 第2处 */
        case "bpu":
            var len1 = sParams.Length ;
            var len2 = bpRequestURIs.Length;
            //每次赋值之前先恢复原始值
            for(var i = 0; i< len2; i++){
                bpRequestURIs[i]=" ";
            }
            if (len1 < 2) {FiddlerObject.StatusText="RequestURI breakpoint cleared"; return false;}
            var text = "";
            for(var i = 1; i < len1; i++){
                bpRequestURIs[i-1] = sParams[i];
                text += sParams[i] +" ";
            }
            FiddlerObject.StatusText="RequestURI breakpoint for " + text;
            return true;
//第三处:找到开头的代码注释后新增后面代码:
 /*if ((null!=bpRequestURI) && oSession.uriContains(bpRequestURI)) {
            oSession["x-breakrequest"]="uri";
        }
        zch改过这里(第三处)*/
        var len = bpRequestURIs.Length;
        for(var i = 0; i< len; i++){
            if(bpRequestURIs[i]!=null && bpRequestURIs[i]!= " "&& oSession.uriContains(bpRequestURIs[i]) ){
                oSession["x-breakrequest"]="uri";
            }
        }

标签:fiddler,示例,bpRequestURIs,bpRequestURI,bpu,二次开发,拦截,断点
来源: https://www.cnblogs.com/morethansea/p/15563347.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有