书接上回, Fiddler插件 在团队内部试用后,效果很不错,小伙伴们也提出了不少改进的建议;html
最近一段Fiddler使用的仍较为频繁,之前碰到一些特殊测试需求时,老是本身在FiddlerScript中改来改去,略有些不便;android
因而花了点时间,
将一些经常使用的测试功能封装成了菜单项,作到一键切换,方便以后的测试工做ios
如下各菜单,Android和IOS都可使用api
//映射线上Host到灰度等测试环境; 在class中增长以下代码 RulesString("HostMapping",true) RulesStringValue(0,"灰度1", "10.35.45.84") RulesStringValue(1,"灰度2", "10.35.45.84:8080") RulesStringValue(2,"233.94", "192.168.233.94") RulesStringValue(3,"14.206", "192.168.14.206") RulesStringValue(4,"9.28", "192.168.9.28") public static var m_host: String = null; // 在 OnBeforeRequest 方法中增长以下 if(null != m_host && oSession.HostnameIs("mobile-api2011.elong.com") ){ oSession.host=m_host; }
代码以下网络
//替换DeviceID,模拟MVT测试及新用户 //在class中增长以下代码 RulesString("ABTest测试",true) RulesStringValue(0,"测试组", "12345678-1234-5678-9012-123456789010") RulesStringValue(1,"对照组", "12345678-1234-5678-9012-123456789011") RulesStringValue(2,"新用户", "12345678-1234-5678-9012-122211133344") public static var m_deviceid: String = null; // 在 OnBeforeRequest 方法中增长以下 if(null != m_deviceid && oSession.oRequest.headers.Exists("DeviceId") &&oSession.oRequest.headers.Exists("ClientType") ){ oSession.oRequest["DeviceId"] = m_deviceid; }
//经过设置网络延时,来模拟不一样的网速场景 //在class中增长以下代码 ;增长菜单项 RulesString("网速模拟",true) RulesStringValue(0,"Simulate &Modem Speeds", "150") RulesStringValue(1,"Simulate 2G(25KB)", "40") RulesStringValue(2,"Simulate 3G(250KB)", "4") public static var m_networkSpeed: String = null; // 在 OnBeforeRequest 方法中增长以下 if(m_networkSpeed){ //网速模拟测试 oSession["request-trickle-delay"] = (parseInt(m_networkSpeed)*2).ToString(); oSession["response-trickle-delay"] = m_networkSpeed; }
//在class中增长以下代码 //增长菜单项 public static RulesOption("标记HTTPS", "Other") var m_https: boolean = false; //只展现来自APP的Mapi请求,其它类型所有过滤 public static RulesOption("Only Show Mapi", "Other") var m_OnlyMapi: boolean = false; // 在 OnBeforeRequest 方法中增长以下 //将域名中包含elong的HTTPS请求,标记为红色 if ( m_https && oSession.isHTTPS && oSession.fullUrl.indexOf("elong")>0){ oSession["ui-color"] = "red"; } //只展现APP过来的请求,非app请求直接过滤掉 if(m_OnlyMapi && !oSession.oRequest.headers.Exists("DeviceId") && !oSession.oRequest.headers.Exists("ClientType")){ oSession["ui-hide"] = "true"; }
//在class中增长以下代码便可 public static BindUIColumn("ClientIP", 120) function FillClientIPColumn(oS: Session): String { //oS.oResponse.headers. return oS.clientIP.Split(':')[3]; } public static BindUIColumn("Method", 60) function FillMethodColumn(oS: Session): String { return oS.RequestMethod; }
fiddler官方资料app