FiddlerScript高级技巧---自定义Fiddler菜单
Tips
书接上回, Fiddler插件 在团队内部试用后,效果很不错,小伙伴们也提出了很多改进的建议;
最近一段Fiddler使用的仍较为频繁,以前碰到一些特殊测试需求时,总是自己在FiddlerScript中改来改去,略有些不便;
于是花了点时间,
将一些常用的测试功能封装成了菜单项,做到一键切换,方便之后的测试工作
以下各菜单,Android和IOS均可使用
一、 域名映射到测试环境

在测试过程中,经常需要修改或切换测试环境;以Android为例,需要再返回首页切换环境
使用线上Release包时,无法切换到灰度或测试环境;且目前Elong-Test-D只作IP映射,默认连接的是灰度1(端口默认为80)
//映射线上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切换,用于ABTest测试

公司内部的MVT测试(即ABTest)是由DeviceID来控制其命中策略的,修改相应的DeviceID即可命中不同的策略;
另外,增加了一个新用户的DeviceID;用于模拟新用户
由于MVT接口是在APP启动时获取的,因此需重启app才能生效
使用该方式,就不用在APP的Debug工具中输入DeviceID了;同时适用于Android和IOS
代码如下
//替换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;
}
三、网速模拟测试

在测试过程中,经常需要模拟不同网络速度,尤其是低网速下的一些测试场景;
通过测试代理网速传输延时来达到模拟网速的目的
无需重启app,即时生效
代码如下 :
//通过设置网络延时,来模拟不同的网速场景
//在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;
}
四、其它小功能

将所有HTTPS请求标识为红色;
在Fiddler中,只展示Mapi请求,忽略其它所有请求(洁癖患者推荐)
//在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";
}
五、主窗口中增加两列:ClientIP和HTTP请求方式

显示HTTP请求方法,如GET Or POST ;
展示客户端IP来源;
代码如下
//在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;
}
参考资料
FiddlerScript高级技巧---自定义Fiddler菜单的更多相关文章
- 自定义Fiddler插件一
上个月自定义了一个Fiddler的插件,可以根据请求生成接口自动化测试的RF和Python代码,这样测试人员只需要手动操作页面用Fiddler抓取报文,就可以直接生成RF.Python代码,然后只需要 ...
- ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单
前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...
- SharePoint 2013 自定义扩展菜单
在对SharePoint进行开发或者功能扩展的时候,经常需要对一些默认的菜单进行扩展,以使我们开发的东西更适合SharePoint本身的样式.SharePoint的各种功能菜单,像网站设置.Ribbo ...
- SharePoint 2013 自定义扩展菜单(二)
接博文<SharePoint 2013 自定义扩展菜单>,多加了几个例子,方便大家理解. 例七 列表设置菜单扩展(listedit.aspx) 扩展效果 XML描述 <CustomA ...
- JavaScript自定义右键菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- SharePoint开发 - 自定义导航菜单(一)菜单声明与配置
博客地址 http://blog.csdn.net/foxdave 本篇描述自定义sharepoint菜单的一种方式,自定义菜单适用于一些门户等需求的网站 自定义的菜单有自己的数据源,可以是数据表,可 ...
- 自定义右键菜单,禁用浏览器自带的右键菜单[右键菜单实现--Demo]
许多从事Web开发的会发现有些事,我们需要禁用浏览器本事自带的右键菜单,而实现自定义的右键菜单下面我们也来实现一个自定义的右键菜单 首先来创建JSP页面 <%@ page language=&q ...
- jquery easyui鼠标右击显示自定义的菜单
1.datagrid表格中,对某一行鼠标右击,显示出如下的自定义的菜单: 在html页面中写: <div id="menu" class="easyui-menu& ...
- 为SharePoint网站创建自定义导航菜单
转:http://kaneboy.blog.51cto.com/1308893/397779 相信不少人都希望把SharePoint网站内置的那个顶部导航菜单,换成自己希望的样式.由于SharePoi ...
随机推荐
- 原创SQlServer数据库生成简单的说明文档小工具(附源码)
这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...
- 性能调优之Java系统级性能监控及优化
性能调优之Java系统级性能监控及优化 对于性能调优而言,通常我们需要经过以下三个步骤:1,性能监控:2,性能剖析:3,性能调优 性能调优:通过分析影响Application性能问题根源,进行优化 ...
- 项目的ip地址更改,用git从远程提取代码出现错误,提示为 network error connection timed out
昨天公司的ip进行了修改,在今天从远程提取代码的过程中提示network error connection timed out错误,从网上看了一下解决方法 1:打开项目文件夹,点击查看 2:勾选隐藏的 ...
- Nest客户端的基本使用方法
通过Nuget安装好Nest的相关Dll,之后我们就可以开始了, 1.初始化Nest客户端 string indexName = "customer"; Uri uri = new ...
- HBase应用快速学习
HBase是一个高性能.面向列.可伸缩的开源分布式NoSQL数据库,是Google Bigtable的开源实现. HBase的思想和应用和传统的RDBMS,NoSQL等有比较大的区别,这篇文章从HBa ...
- python css概述
1. 概述 css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化. 存在方式有三种:元素内联.页面嵌入和外部引入,比较三种方式的优缺点. 语法:style ...
- 跨web浏览器的IC卡读卡器解决方案
BS结构的程序,如果要与IC卡读卡器通信本身就是件不容易解决的事情.微软的activex ocx技术将这种应用限制在IE浏览器上了,不兼容其它的浏览器.而Chrome使用插件也不兼容IE和其他的浏览器 ...
- 微信小程序,前端大梦想(三)
微信小程序的事件及生命周期 继续下节课,今天我们还是从四个方面来了解小程序: ●常用事件和事件冒泡 ●配置 ●app生命周期及app对象的使用 ●页面的生命周期 一.事件的 ...
- AngularJs 4大核心
放弃了IE8, 4大核心: MVC: 数据模型,视图层,业务逻辑和控制模式(控制器), 为何MVC不是设计模式呢?(23种设计模式里没有MVC,MVC模式的目的就是实现Web系统的职能分工,超越了设计 ...
- python安装win32api pywin32 后出现 ImportError: DLL load failed
ImportError: DLL load failed: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\x ...