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 ...
随机推荐
- Java面试题:写代码使得分别出现StackOverflowError和OutOfMemoryError
转载自:http://www.cnblogs.com/xudong-bupt/p/3360206.html 今天做了个笔试,这是其中的一道题目:写代码使得分别出现StackOverflowError和 ...
- jdk源码剖析:Synchronized
开启正文之前,先说一下源码剖析这一系列,就以"死磕到底"的精神贯彻始终,最少追踪到JVM指令(再往下C语言实现了). =========正文分割线=========== Sync ...
- rancher api key
rancher将docker容器的界面化做的很好了,但是我们有时间需要在别的地方查看容器的一些信息,怎么办呢? rancher自己提供的有api 点击api查看 我们能够查看到该容器的一些信息,实际上 ...
- PHP中的for循环
循环 循环是操作某一个功能(执行某段代码). ①循环四要素: a 循环初始值 b 循环的条件 c 循环状态 d 循环体 ②for循环 a 穷举:把所有的可能性的都一一列出来. b 迭代:每次循环都会把 ...
- 数字图像处理(MATLAB版)学习笔记(1)——第1章 绪言
0.下定决心 当当入手数字图像处理一本,从此开此正式跨入数字图像处理大门.以前虽然多多少少接触过这些东西,也做过一些相关的事情,但感觉都不够系统,也不够专业,从今天开始,一步一步地学习下去,相信会有成 ...
- JS学习中遇到的一些题目
1.找出所有的水仙花数: 水仙花数例如:153 的特点: 1^3+5^3+3^=153 而且水仙花数只会是三位数,所以可以利用循环的方式来解决问题,循环条件可以设为: var i = 1;i < ...
- 前端开发框架简介:angular和react
作者:vienwu react是facebook推出一个用来构建用户界面的js库.官方介绍的三大特性如下: just the ui 把react只当作一个ui组件就好,等同于传统mvc中的view. ...
- struts2 之 struts2数据校验
1. 数据校验一般分为2类:前端的校验(js校验),后端的校验(java代码):实际开发中大部分情况下都是采用js校验.在对数据安全要求较高的情况下可能会采用后端验证. 2. Struts2提供了后 ...
- java设计模式--基础思想总结--父类引用操作对象
看设计模式的相关书籍也有一段时间了,一开始其实是抱着作为java三大框架的基础知识储备来学习的,不过到后来,才发现,在设计模式的一些准则装饰下,java的面向对象威力才真正地体现出来,后面的将会陆续地 ...
- centos7安装httpd和php
centos7许多命令都变了,又要重新记了. centos7默认安装了httpd吧?记不清了,看一下: rpm -qa |grep httpd 没有的话,安装一下吧. yum -y install h ...