Fiddler Response私人订制

在客户端接口的测试中,我们经常会需要模拟各种返回状态或者特定的返回值,常见的是用Fiddler模拟各种请求返回值场景,如重定向AutoResponder、请求拦截修改再下发等等。小编在近期的测试中遇到的一些特殊的请求返回模拟的测试场景,借此机会总结分享给大家,抛砖引玉。

特定返回状态码的模拟

近期的项目中,在测试客户端对原网站的异常返回的错误提示处理时,需要模拟网站的不同返回状态。使用Fiddler的小伙伴们会知道,我们可以使用Fiddler的重定向功能AutoResponder来快速模拟,但是AutoResponder中只有几种常用的返回状态码的模拟,所以,需要尝试在Fiddler中添加其他返回状态码。

在Fiddler中添加不同返回状态的简便方法如下:

STEP-1:进入Fiddler安装路径,查看ResponseTemplates文件夹中的响应样例;

STEP-2: 参照Templates中的样例,拷贝和添加新的返回状态码,以添加504状态码为例;

STEP-3: 重新启动Fiddler,查看AutoResponder中是否有新增的状态码返回;

STEP-4: 以m.sogou.com为例,查看是否返回目标的状态码;

特定字段数据的模拟

小编最近在测试某接口容错时,遇到了这样一个问题,如何在超时判断时间内保证Response中字段值1与实际匹配的前提下,模拟字段2的各种返回值场景。

具体场景如下:客户端对于请求接口返回数据各个字段的处理方式时,先对字段1进行时间戳校验(该字段为客户端在每次请求发送前生成,并通过请求发送给服务端),若校验成功后,才会处理Response中的字段2,测试的目的是对字段2进行容错,需保证排除字段1的干扰,也就是说在请求返回模拟时,需要保证模拟的Response中的字段1与Request中一致(小Tip:客户端请求超时限制约为5s,且与开发沟通后不方便修改)。如何在模拟的Response中字段1一致的前提下,修改字段2的值呢?

修改“Customize Rules"

修改Fiddler中的“Customize Rules",可以模拟特定域名的请求返回的Json数据中的特定字段。

具体添加内容如下:

// 判断是否为目标请求
var isVoiceRequest = false;
if ((oSession.host == "xx.xx.xx.xx") &&   // host  
oSession.fullUrl.Contains("xx/xxi/xx"))   // url
{
isVoiceRequest = true;
}
// 修改返回JSON串
if (isVoiceRequest)
{
// 1, 获取Response Body中JSON字符串
var responseStringOriginal =  oSession.GetResponseBodyAsString();
//FiddlerObject.log(responseStringOriginal);    // 可在控制台中输出Log   
// 2, 转换为可编辑的JSONObject变量
var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(responseStringOriginal);        
// 3, 修改JSONObject变量
// 3.1修改字段
responseJSON.JSONObject['data']['voice'] = "testtesttest";
// 3.2添加字段
// 4, 重新设置Response Body
var responseStringDestinal = Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject);
//FiddlerObject.log(responseStringDestinal);
oSession.utilSetResponseBody(responseStringDestinal);
}

通过该种方式,可以模拟修改,特定域名请求Response中Json数据的特定字段值。

特定加密返回值的模拟

测试中会遇到请求返回密文的情况(常见的有URLencode、Base64编码等),这种情况下就需要先进行解密处理。

Fiddler的TextWizard

Fiddler自带的TextWizard可以对常见的多种密文进行解密,还可以反向编码,例如本次场景,可以对解密的原文进行修改后(改成异常内容情况),再进行加密,从而得到待模拟的特定返回内容。这样可以不用再查找借助第三方的编码工具。

结束语

以上为小编在测试过程中发现的比较好的Fiddler模拟请求Response小方法,在此分享共勉。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/63077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker作业

目录 1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。 1.1启动镜像 1.2启动cloud镜像 1.3浏览器访问 ​编辑 2、安装搭建私有仓库 Harbor 2.1下载docker-compose 2.2 磁盘挂载,保存harbor 2.3 修改配置文件 2.4安装 2.5浏览器访问 2.6 新…

MybatisPlus(2)

前言🍭 ❤️❤️❤️SSM专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 上篇我们简单介绍了MybatisPlus的方便之处,这篇来深入了解Myb…

代码随想录算法训练营第二十四天|理论基础 77. 组合

理论基础 其实在讲解二叉树的时候,就给大家介绍过回溯,这次正式开启回溯算法,大家可以先看视频,对回溯算法有一个整体的了解。 题目链接/文章讲解:代码随想录 视频讲解:带你学透回溯算法(理论篇…

Maven之高版本的 lombok 和 tomcat 7 插件冲突问题

高版本的 lombok 和 tomcat 7 插件冲突问题 在开发期间,当我们使用 tomcat7-maven-plugin 来作为运行环境运行我们项目使,如果我们项目中使用了 1.16.20 及以上版本的 lombok 包,项目启动时会报错: for annotations org.apache.…

使用代理服务器和pip安装软件包

在开着代理服务器的情况下,直接pip install 软件包名会出现如下错误, WARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNone)) after connection broken by SSLError(SSLZeroReturnError(6, TLS/SSL connection has been…

设计模式--代理模式(Proxy Pattern)

一、什么是代理模式(Proxy Pattern) 代理模式(Proxy Pattern)是一种结构型设计模式,它允许一个对象(代理)充当另一个对象(真实对象)的接口,以控制对该对象的…

GNSS全球卫星导航系统(频段)

在地球表面或近地空间的任何地点,为用户提供全天候的三维坐标、速度和时间信息的空基无线电导航定位系统。 系统卫星导航频段信号频率全球 北斗 (中国) 低频段B2a1176.45 MHz低频段B2b1207.14 MHz低频段B3I1268.52 MHz高频段B1I1561.098MHz高…

UG\NX CAM二次开发 获取工序的状态 UF_OPER_ask_status

文章作者:代工 来源网站:NX CAM二次开发专栏 简介: UG\NX CAM二次开发 获取工序的状态 效果: 代码: void MyClass::do_it() {int count=0;tag_t * objects;UF_UI_ONT_ask_selected_nodes(&count, &objects);for (int i=0; i<count; i++){tag_t operTa…

智能工厂移动式作业轻薄加固三防平板数据采集终端

在这个高度自动化和数字化的环境中&#xff0c;数据采集变得尤为重要。为了满足这个需求&#xff0c;工业三防平板数据采集终端应运而生。工业三防平板数据采集终端采用了轻量级高强度镁合金材质&#xff0c;这使得它在保持轻薄的同时具有更强的坚固性。这种材质还具有耐磨防损…

java脚手架搭建:如何使用Java脚手架来构建应用程序

Java脚手架搭建的步骤&#xff1a;创建Maven项目&#xff1a;使用maven--webapp创建一个Maven项目&#xff0c;并在pom.xml中添加所需的依赖。 Java脚手架搭建的步骤&#xff1a; 1. 创建Maven项目&#xff1a;使用maven-archetype-webapp创建一个Maven项目&#xff0c;并在p…

Linux安装ffmpeg

1 下载yasm wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz tar -zxvf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure make && make install2 下载ffmpeg wget http://ffmpeg.org/releases/ffmpeg-3.1.3.tar.bz2 tar jxvf ffmpeg-3.1.3.tar.…

机器视觉之开运算和闭运算

开运算&#xff08;Opening&#xff09;和闭运算&#xff08;Closing&#xff09;是数学形态学中常用的图像处理操作&#xff0c;通常用于去除图像中的噪声、连接物体、分离物体等操作。它们分别由两个基本操作组成&#xff1a;腐蚀&#xff08;Erosion&#xff09;和膨胀&…

CAR-T商品化的第一步

1、CAR-T细胞的体外扩增能力 CAR-T细胞疗法需要先从患者体内获得T淋巴细胞&#xff0c;然后通过体外转基因技术 transduce CAR靶向结构域。这一过程需要在细胞培养体系中得到充分的扩增&#xff0c;以获得足够的治疗CAR-T细胞数量。因此&#xff0c;CAR-T细胞的体外扩增能力直…

liunx下ubuntu基础知识学习记录

使用乌班图 命令安装使用安装网络相关工具安装dstat抓包工具需要在Ubuntu内安装openssh-server gcc安装vim安装hello word输出1. 首先安装gcc 安装这个就可以把gcc g一起安装2. 安装VIM3.编译运行代码 解决ubuntu与主机不能粘贴复制 命令安装使用 安装网络相关工具 使用ifconf…

Houdini_VEX属性术语表

如有错误&#xff0c;可在评论区指正。 1、全局变量 wrangles中可用的变量。类型指示器不是必需的&#xff0c;但包含在内作为提醒。 // 在所有 SOP wrangles 中可用 fFrame //当前浮动帧号&#xff0c;相当于 $FF Hscript 变量 fTime //当前时间&#xff08;以秒为单位&am…

20230829工作心得:如何把大List 切割为多个小List?

1 怎么看这个方法谁在调用它&#xff1f; 解决&#xff1a;按ctrl&#xff0c;然后点进去看。 idea里看方法的具体细节&#xff0c;和谁在调用这个方法&#xff0c;都可以通过按ctrl&#xff0c;然后单击查看。 2 请求的时候&#xff0c;如果时间yyyy-MM-dd HH:mm:ss在url里会…

Ingress IN Kubernetes

摘要 Ingress的设计旨在提供一种统一的方式来管理和暴露集群中的服务&#xff0c;以及灵活地配置和调整服务的访问规则。通过与底层的网络实现解耦&#xff0c;Ingress使得服务的部署和调度更加灵活&#xff0c;同时通过SSL/TLS加密和负载均衡等功能&#xff0c;保证了服务的安…

【chrome扩展开发】如何在项目中判断插件是否已安装

由于安全限制&#xff0c;本文采取间接的方式实现 1、项目部分 比如通过cookie、localStorage等进行状态存储 1.1、初始化判断 function getCookie(name){let arr document.cookie.match(new RegExp("(^| )"name"([^;]*)(;|$)"))if(arr ! null){return u…

最小生成树 -prim算法

一般无向图建图稠密图-prim算法稀疏图-kruskal算法 prim : 加点法 1.先随机选一个点&#xff0c;加入集合 &#xff0c;之后寻找最短的距离的点加入集合&#xff0c;行程最小生成树。 2.注意最小生成树是不能有回路的&#xff0c; 所以可以把回路设置成最大值&#xff0c;即假装…

【大数据】图解 Hadoop 生态系统及其组件

图解 Hadoop 生态系统及其组件 1.HDFS2.MapReduce3.YARN4.Hive5.Pig6.Mahout7.HBase8.Zookeeper9.Sqoop10.Flume11.Oozie12.Ambari13.Spark 在了解 Hadoop 生态系统及其组件之前&#xff0c;我们首先了解一下 Hadoop 的三大组件&#xff0c;即 HDFS、MapReduce、YARN&#xff0…