利用fiddler测试APP及高级应用

news2025/2/8 8:41:05

我们经常需要用到Fiddler做代理服务器对Web、APP应用进行抓包,以便我们对接口功能进行测试调试,定位问题等。这篇将讲述怎么通过Fiddler对APP进行抓包,以及简单介绍一些高级应用场景。

首先,附上Fiddler使用的环境配置清单:

  • windows 7
  • Fiddler v5.0.20194.41348 

简单说下Fiddler的抓包原理:

由Fiddler作为代理服务器,手机发起的请求通过该代理器进行中转,从而fiddler记录下请求的通信数据信息。来一个形象的比喻:原来直连两端(服务器和APP端)的一根水管,现在中间多加了一个水箱(fiddler),水流通过水箱并记录下了水流的信息。(思考下:如果是直连两端的两根循环水管,我们中间都接上水箱可以做哪些操作?)

如果你想学习Fiddler抓包工具,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的Fiddler抓包工具教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386

零基础玩转Fiddler抓包在测试领域应用实战!_哔哩哔哩_bilibili【Python接口自动化测试笔记及视频源码 +微信:mashang-nn 备注(b站555)即可通过 收藏等于白嫖,点赞三连才是真情!】, 视频播放量 1270、弹幕量 2、点赞数 4、投硬币枚数 2、收藏人数 20、转发人数 0, 视频作者 自动化测试码尚科技, 作者简介 领取笔记加微信:mashang-nn 备注:B站555,相关视频:Fiddler抓包工具实战全网最全最细教程,没有之一,2023年B站最新Jmeter接口测试实战教程,精通接口自动化测试只需要这一套视频,B站福利!Web自动化测试从0-到项目实战教程,免费学!!!,从0玩转fiddler抓包在测试领域的四大应用实战!,2023性能测试保姆级教程全套完整版【jmeter性能测试实战,jmeter性能测试、jmeter压力测试】,Postman接口测试使用教程+下载+安装及项目实战教程,从0玩转Fiddler抓包在测试领域的四大应用实战!,2023年最新版Jmeter性能测试项目实战讲解,从入门到精通价值8888的实战教程,Postman接口测试最牛教程接口项目实战你要的都有,接口测试神器:Apifox,究竟有多香!https://www.bilibili.com/video/BV14g4y1H7vv/?spm_id_from=333.999.0.0

使用fiddler代理远程捕获APP请求

步骤一:在菜单栏(路径:Tools -> Fiddler Options)中找到代理设置,因为我的 8888 端口已经被其它服务占用,所以这里设置代理端口为 7788 。(注意:需要重启fiddler,代理设置才生效)

(注意:在windows下可以通过命令  netstat -ano|findstr 8888  查看 8888 端口是否被占用)

步骤二、查看自己本机的IP,这里有两种方式:

方式一:把鼠标移动到Fiddler右上角的 Online 图标上,即可获得本机IP信息。(推荐使用这种)

方式二:可以在cmd命令窗口中输入ipconfig获得(linux下输入ifconfig)。

步骤三、在手机中,找到与电脑所处同一局域网的WiFi并连接(可以不同网段,但需要在同一个局域网内),然后在手机中设置代理(通常路径: 手机 设置->WLAN-> 长按 当前连接的网络->修改网络-> 显示高级选项 中代理把  改为 手动)。输入代理服务的IP(即fiddler安装所在PC的IP),端口(即fiddler中设置的监听端口,如上面设置的7788)。这样以后,我们就可以监控到APP所有请求了。

步骤四、让我们随便在手机上打开一个应用(如日历),看看Fiddler的抓包结果

Fiddler高级应用场景介绍

1、url地址重写

URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程。如通过URL地址重写,所有原先发到a.com的HTTP Request , Fiddler都帮你转发到b.com ,而在浏览器中毫无感觉。 测试debug过程中常有这种需求。(注意,这里的a.com和b.com是请求URL包含的域名,也可以是IP)

替换的方法有两种,一种是暂时的,一种是永久的。

方式一、暂时的方法是在Fiddler 左下角 QuickExec 命令行 (用户可以直接输入并快速执行脚本命令) 输入:

urlreplace a.com b.com

如上图,输入后按下Enter ,所有原先发到a.com 的HTTP Request 就转发到b.com了。

要清除转发,请在同一位置输入:

urlreplace

按下 Enter  键就可以了。

2)也可以到「FiddlerScript 」直接编辑CustomRules.js(永久性的)。

注:CustomRules.js可以在菜单栏(Rules-> Customize Rules)中打开;在Fiddler5.0以上版本,可以直接通过右侧 FiddlerScripts 进行编辑。

请先在CustomRules.js 找到:

  static function OnBeforeRequest ( oSession : Session ) {

   // ...

 }

 

将CustomRules.js 存档, Fiddler 会自动重新载入CustomRules.js ,原先发到a.com 的HTTP Request 就会自动转发到b.com 。

2、HTTP请求,响应断点调试

断点命令介绍:

  • bpu 在请求开始时中断
  • bpafter 在响应到达时中断
  • bps 在特定http状态码时中断
  • bpv/bpm 在特定请求method时中断

当这些命令没有加参数时,会清空所有设置了断点的HTTP请求。

提示:在命令行输入 help,回车执行会打开一页面详细介绍fiddler的所有命令。

也可以在菜单栏(Rules-> Automatic Breakpoint ->Before Requests)设置断点,是针对所有的会话请求,不大实用,建议用命令。

 bpu 为例演示断点功能:

在Fiddler命令行输入区输入“bpu”回车执行清掉原有的断点,然后输入

bpu http://api.justbon.com/app/login.htm

回车执行,接下来就会中断该URL(http://api.justbon.com/app/login.htm)中包含此地址的请求。 

点击会话列表中被中断的会话,依次进入Inspectors-->TextView。此时请求并未发出,p参数即为输入密码,我们发现输入错了,可以修改为正确的密码,然后点击“Run to Completion”按钮完成后续请求。(注:在这里实现修改了请求数据,其它的post数据,甚至是headers里的cookie、referer、user-agent等都可以修改)

如果点击“Break on Response”:即返回响应内容时,fiddler再次中断,响应内容已经回到本机,但是还在fiddler代理这里,还没有到浏览器(APP)。

同样,bpafter 某一url 后,可以在断点时,修改返回结果(在上图 Run to Completion 按钮下的TextView 或 Raw 等tab页中进行修改),然后然后点击“Run to Completion”按钮完成后续结果返回。

小贴士:instpectors 主要是对请求和响应进行查看和分享,监听请求的响应内容。他有多个分页标签。界面分上下两部分,上面部分显示请求的相关信息;下面部分显示响应相关信息。

3、右侧功能简介

Statistics 统计请求和响应的一些信息。可以使用statistics,完成简单的性能测试。查看其接口的响应时间。

AutoResponder,就是针对一些匹配的请求,让请求者得到的我们指定的数据,而不是服务端返回的真实数据。可以直接从左侧会话面板直接拖拉会话到这个面板。

Composer 用户可以手动设定需要执行的请求(可以通过左侧的拖拽一个先前捕获到的请求到Composer,然后根据需要进行修改后,再点击“Execute”按钮手动执行该请求);

filter 选项页中,用户可以根据自己的需求设定过滤器,这样左侧列表只显示满足用户设定条件的请求;

Timeline 中查看到对应url具体执行的响应时长。

 

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

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

相关文章

社会心理学(2) 社会心理学的研究方法

下面我们来说 社会心理学的研究方法 那么 首先 要说方法论 有些心理学者 他不分方法和方法论 但是 我们还是将他分开 一般的理解 方法论和方法 具体做法不同 方法论 我们定义为 研究心理学的最高或最原则 指导思想 有了这个指导思想 我们就可以更好的决定 对研究的问题 用…

扫码点餐小程序是什么?为什么现在餐厅都在用扫码点餐?

开餐厅的你有没有遇见一种有这样的情况 爆单的时间点就那么一小段,但是人一多呢,出品和点单很容易混乱,从而流失很多客户。 针对与这种情况,便有了扫码点餐。 小程序是一种为餐饮商家提供的解决方案,它可以帮助商家…

k8s集群删除master节点

1.在另外的master节点执行以下命令 kubectl get node #查看需要删除的节点名称 kubectl delete node k8s-master01 #删除名为k8s-master01的节点 2.在k8s-master01清空集群配置信息 kubeadm reset --cri-socketunix:///var/run/cri-dockerd.sock #因为我使用的是1.…

Redis - 数据结构类型及使用场景详解

一. 简介 Redis 是由 Salvatore Sanfilippo 编写的一个key-value存储系统,是跨平台的非关系型数据库。Redis是一个开源的,使用C语言编写的,遵守BSD协议,支持网络,可基于内存,分布式,可选持久性的…

基于Java健身房管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

搭建Jmeter分布式压测与监控,轻松实践

对于运维工程师来说,需要对自己维护的服务器性能瓶颈了如指掌,比如我当前的架构每秒并发是多少,我服务器最大能接受的并发是多少,是什么导致我的性能有问题;如果当前架构快达到性能瓶颈了,是横向扩容性能提…

很详细的Django开发入门详解(图文并茂)

1.Django概述 Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。 Django 框架的核心组件有: 用于创建模型的对象关系映射;为最终用户设计较好的管理界面;…

一些可以参考的文档集合12

之前的文章集合: 一些可以参考文章集合1_xuejianxinokok的博客-CSDN博客 一些可以参考文章集合2_xuejianxinokok的博客-CSDN博客 一些可以参考的文档集合3_xuejianxinokok的博客-CSDN博客 一些可以参考的文档集合4_xuejianxinokok的博客-CSDN博客 一些可以参考的文档集合5_…

C语言设计实现十六进制与十进制数之间的相互转换

一、十六进制数转为十进制数 1.设计一个C语言代码实现十六进制数例如0xFEFF转为十进制 以下是一个C语言代码示例&#xff0c;用于将十六进制数转换为十进制&#xff1a; #include <stdio.h> #include <stdlib.h>int main() {char hexNum[10]; // 存储输入的十六…

操作系统:详解物理内存与虚拟内存,用户空间与内核态空间

目录 0、基础知识&#xff1a;磁盘与物理内存 1、 通过虚拟地址访问物理内存 1.1 虚拟内存&#xff1a; 1.2 虚拟内存的优势&#xff1a; 1.3 举例说明&#xff1a; 2、用户空间与内核态空间 2.1 为什么进程的寻址空间要划分为用户空间与内核态空间两部分&#xff1f;&am…

装饰者模式(十一)

请相信自己&#xff0c;请再次相信自己&#xff0c;请一定要相信自己 上一章简单介绍了桥接模式(十), 如果没有看过, 请观看上一章 一. 装饰者模式 引用 菜鸟教程里面的装饰者模式介绍: https://www.runoob.com/design-pattern/decorator-pattern.html 装饰器模式&#xff0…

什么是开源工作流平台?

在办公职场中&#xff0c;有没有一款软件是实现提质增效的平台&#xff1f;如果让办公实现流程化管理&#xff0c;引用什么平台产品较为合适&#xff1f;低代码开发平台是近些年较为流行的办公软件平台&#xff0c;可以有效管理数据资源&#xff0c;制作表格可视化操作更简便&a…

Qt Quick系列(6)—多风格UI页面

&#x1f680;作者&#xff1a;CAccept &#x1f382;专栏&#xff1a;Qt Quick 文章目录 前言桌面版本的UI界面代码示例相关知识点 移动版风格的UI界面代码示例 嵌套页面代码示例相关知识点 并排页面代码示例相关知识点 前言 Qt Quick控件用于创建由标准化组件&#xff08;…

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 vins前端与imu预积分

OpenCV去畸变undistortPoints原理解析 不动点迭代法—单变量非线性方程近似根matlab求解 淦VINS-MONO源码 03–openCV与VINS中去畸变方法的不同 这里用的方法和openCV不同&#xff0c;假设现在求A点的去畸变坐标&#xff0c;那么我们将A的坐标直接代入畸变模型中&#xff0c;求…

Pytest教程__用例执行顺序(5)

在unittest中&#xff0c;测试用例的执行顺序与测试用例的名称有关&#xff0c;按照名称的ascii码排序的&#xff0c;并不是按照用例的编写顺序执行的。 pytest默认是按用例的编写顺序执行的 我们可以通过第三方包 pytest-ordering 来自定义我们用例的执行顺序。 方法是使用装…

14. 100ASK-V853-PRO开发板 ADB测试指南

100ASK-V853-PRO开发板 ADB测试指南 硬件要求&#xff1a; 100ASK-V853-PRO开发板 软件要求&#xff1a; 固件下载地址&#xff1a;链接&#xff1a;百度网盘 提取码&#xff1a;sp6a 固件位于资料光盘中的10_测试镜像/4.测试ADB/v853_linux_100ask_uart0.img 1.硬件连接 …

JMeter循环读取CSV文件实现接口批量测试

目录 前言&#xff1a; 1、添加线程组 2、添加HTTP信息头管理器 3、添加HTTP请求 4、添加察看结果树 5、添加循环控制器 6、在循环控制器下添加CSV配置文件 7、其他配置文件需要修改写入形式 8、执行CSV文件&#xff0c;查看结果 前言&#xff1a; JMeter可以通过CSV…

安装Canal

安装和配置Canal 安装和配置Canal1.开启MySQL主从1.1.开启binlog1.2.设置用户权限2.安装Canal2.1.创建网络2.3.安装Canal安装和配置Canal 下面我们就开启mysql的主从同步机制,让Canal来模拟salve 1.开启MySQL主从 Canal是基于MySQL的主从同步功能,因此必须先开启MySQL的主…

不同等级的高速PCB工程师,薪资差距有多大?

高速PCB设计在现代电子领域中扮演着很重要的角色&#xff0c;而高速PCB工程师的技能水平和经验对于项目的成功至关重要&#xff0c;下面本文将从地区分布、薪资水平、工作内容等多方面讨论对比不同等级的高速PCB工程师。 NO.1 初级高速PCB工程师 ①薪资水平 初级高速PCB工程师…

用代码实现一个简单计算器

作者主页&#xff1a;paper jie的博客_CSDN博客-C语言,算法详解领域博主 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《C语言》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造…