Fiddler Response私人订制,你知道多少

news2025/2/13 12:46:40

目录

前言

特定返回状态码的模拟

特定字段数据的模拟

修改“Customize Rules"

特定加密返回值的模拟

Fiddler的TextWizard

结束语

总结:


前言

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

  Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

                 

特定返回状态码的模拟

近期的项目中,在测试客户端对原网站的异常返回的错误提示处理时,需要模拟网站的不同返回状态。使用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小方法,在此分享共勉。

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片加入群聊免费领取,群里还有大佬帮忙解答问题,千万不要错过哦。

  Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

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

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

相关文章

MySQL数据库 --- 基础篇

一、MySQL概述 1.1、数据库相关概念 名称全称简称数据库存储数据的仓库,数据是有组织的进行存储DataBase(DB)数据库管理系统操纵和管理数据库的大型软件DataBase Management、System (DBMS)SQL操作关系型数据库的编程语言,定义了…

【网络安全】深入解析 PHP 代码审计技术与实战

前言 登录某个网站并浏览其页面时,注意到了一些看起来不太对劲的地方。这些迹象可能是该网站存在漏洞或被黑客入侵的标志。为了确保这个网站的安全性,需要进行代码审计,这是一项专门针对软件代码进行检查和分析的技术。在本文中,…

从汇编代码探究函数栈帧的创建和销毁的底层原理

人,只有在放弃战斗的时候才算输,只要坚持战斗,就还没输 本文收录于青花雾气-计算机基础 往期回顾 从0到1搞定在线OJ 数据在内存中的存储 计算机存储的大小端模式 目录 一、先导知识 二、函数调用堆栈 三、函数栈帧的创建 1.创建函数…

计算机图像处理—HOG 特征提取算法

一、实验介绍 1. 实验内容 本实验将学习HOG 特征提取算法。 2. 实验要点 HOG 算法HOG 算法有效的原因创建 HOG 描述符HOG 描述符中的元素数量可视化 HOG 描述符理解直方图 3. 实验环境 Python 3.6.6numpymatplotlibcv2copy 二、实验步骤 简介 正如在 ORB 算法中看到的…

机器学习—支持向量机

练习5:支持向量机 介绍 在本练习中,我们将使用支持向量机(SVM)来构建垃圾邮件分类器。 在开始练习前,需要下载如下的文件进行数据上传: data.tgz -包含本练习中所需要用的数据文件 其中: e…

华为OD机试 JavaScript 实现【计算字符串的编辑距离】【牛客练习题 HJ52】,附详细解题思路

一、题目描述 Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。编辑距离的算法是首先由…

后端(二):Servlet

我们上一张聊的是Tomcat,它其实就是一个 HTTP 服务器,而Servlet 是基于 Tomcat 的 原生api ,除了 Servlet,后面还有聊到很多 api 。 Servlet 是什么 Servlet(Server Applet)是Java Servlet的简称&#xf…

【知识点复习】结构体与共用体

结构体和共用体各有什么特点: 1、结构体中每一个成员都有自己的内存空间,计算结构体大小的时候要注意内部字节对齐; 32位占4字节,64位占8字节。 结构体访问成员:点降级访问 2、共用体又叫联合体union,每一…

我的256创作纪念日

机缘 挺开心的,想到自己未曾写过一些非技术类的博客,恰巧今天刚好也是我的256创作纪念日,就乘着这个日子,写一点自己过去的收获、内心的想法和对未来的展望吧。 本人不才,只就读于一所民办本科之中,我挺不想…

ASCON:以“慢而稳”赢得NIST轻量级加密算法标准

1. 引言 自2016年以来,NIST一直在评估轻量级加密方法,并于2022年发布了入围决赛的10种轻量级加密算法: ASCONElephantGIFT-COFBGrain128 AEADISAPPhoton BeetleRomulusSparkleTinyJambuXoodyak 在评估过程中,NIST重点关注&#…

使用Python把文件夹里面的图片放入一个pdf

文章目录 背景介绍代码代码分析展示 背景介绍 在看一位up主的“矩阵分析”课程的时候,up主的课件是以图片形式保存在QQ空间的。图片形式不便于学习,所以想要通过Python代码,把保存在“矩阵分析课件”里面的图片,转换为pdf&#x…

Qt函数运用

setwidget 文件 文件读写 链接 std::ifstream---std::ofstream 头文件--#include <fstream> 执行都是类&#xff0c;用这些类操作文件都要建立对象流。 1&#xff0c;建立对象流 流对象的建立有两种方式&#xff1a; &#xff08;1&#xff09;使用fstream类可以…

内网安全:Socks 代理 || 本地代理 技术.

内网安全&#xff1a;Socks 代理 || 本地代理 技术. Socks 代理又称全能代理&#xff0c;就像有很多跳线的转接板&#xff0c;它只是简单地将一端的系统连接到另外一端。支持多种协议&#xff0c;包括http、ftp请求及其它类型的请求。它分socks 4 和socks 5两种类型&#xff0…

Selenium中的隐式等待和显式等待

在Selenium中&#xff0c;“等待”在执行测试中起着重要作用。在本文中&#xff0c;您将学习Selenium中“隐式”和“显式”等待的各个方面。 在本文中&#xff0c;您将学习到 1. 为什么我们需要在selenium中等待&#xff1f; 2. 隐瞒等待 3. 明确等待 4. 流利的等待 为什么…

15.DIY可视化-拖拽设计1天搞定主流小程序-分类联动文章列表实时刷新

分类联动文章列表实时刷新 本教程均在第一节中项目启动下操作 分类联动文章列表实时刷新前言需求一:功能实现:点击首页分类,对应分类内容显示到当前页一、清空原分类界面:二. 设置选项卡三:设定展示内容字段:1.跨页面复制:文章分类组件到分类![在这里插入图片描述](https://img…

服务器安装cuda版本的pytorch+DGL

1、先创建pytorch环境&#xff1a;conda create -n ljj_torch112 python3.8 看本机的&#xff1a; 先看自己的cuda版本&#xff1a;&#xff08;最权威的看&#xff1a;nvcc --version&#xff09; 10.0的cuda于是不太符合&#xff0c;所以换一个10.2的cuda比较常用&#xff0…

【C++从入门到放弃】list深度剖析及模拟实现

&#x1f9d1;‍&#x1f4bb;作者&#xff1a; 情话0.0 &#x1f4dd;专栏&#xff1a;《C从入门到放弃》 &#x1f466;个人简介&#xff1a;一名双非编程菜鸟&#xff0c;在这里分享自己的编程学习笔记&#xff0c;欢迎大家的指正与点赞&#xff0c;谢谢&#xff01; list …

CANN黑科技解密|昇腾Ascend C编程语言 — 极简易用的算子开发体验

AI应用的大脑是神经网络&#xff0c;而构成神经网络的基石是一个个算子。为了让开发者的网络在昇腾硬件上高效运行&#xff0c;昇腾异构计算架构CANN&#xff08;Compute Architecture for Neural Networks&#xff09;提供了丰富的高性能算子库&#xff0c;包括神经网络库、线…

Python-opcua 编程(1)

任何一项新标准如果不能充分应用是不可能推广的&#xff0c;最近看了一些国外网站&#xff0c;发现类似OPC UA 的应用以及比较广泛了&#xff0c;而且有许多课程。相比之下&#xff0c;我国OPCUA 标准的普及工作仍然停留在概述的阶段&#xff0c;为此&#xff0c;我将逐步介绍一…

复习并发编程的基础知识(一)

时间长了&#xff0c;并发编程的基础知识总忘&#xff0c;来记录一下&#xff1a; 进程和线程 进程&#xff1a;资源分配的最小单元&#xff0c;什么是资源&#xff1f;CPU&#xff0c;内存&#xff0c;网卡等等 线程&#xff1a;进程中的一个实体&#xff0c;不能单独存在&…