Fiddler弱网测试究竟该怎么做?
前言
使用Fiddler对手机App应用进行抓包,可以对App接口进行测试,也可以了解App传输中流量使用及请求响应情况,从而测试数据传输过程中流量使用的是否合理。
抓包过程:
1、Fiddler设置
1)启动Fiddler->Tools->Fiddler Options

2)HTTPS选项卡中,设置如下,勾选过程中如有弹窗允许即可;

Connections选项卡中,勾选Allow remote computers to connect,勾选时如有弹窗确定即可;
Fiddler listens on port:8888是监控端口;

2、手机设置
1)手机和电脑连同一个WiFi;
2)通过ipconfig查看计算机IP地址,如本机IP地址为:192.168.9.150;打开手机无线网络,选择连接的WiFi,设置代理,IP输入192.168.9.150,端口:8888;
3)手机浏览器访问:192.168.9.150:8888,出现响应页面说明连接成功,点击响应界面中的“fiddlerRoot certificate”安装证书,然后就可以操作App通过Fiddler进行抓包了。
可以在Fiddler Statistics(统计)中查看各个请求发送和接受数据大小及传输时间。
3 、 fiddler模拟限速的原理
我们可以通过fiddler来模拟限速,因为fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里 面自定义一些逻辑。Fiddler的模拟限速正是在客户端请求前来自定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和 上传速度,从而达到限速的效果。
他提供了一个功能,让我们模拟低速网路环境…启用方法如下:
Rules → Performances → Simulate Modem Speeds :模拟调制解调器的速度
启动fiddler需要进行如下设置:
1.设置端口号:

allow remote computers to connect “允许远程计算机连接”为设置的代理可以连接到fiddle上,必须勾选
2.重启fiddle;
3.设置模拟调制解调器的速度:

4.设置手机代理
手机代理设置“ip地址为本机的ip,端口号为之前设置的端口号(确保端口号不被占用)”
5.手动设置设置上行,下行速率,模拟网路速度的原理,每上传/下载1KB 要delay 多久…

网络取值的算法就是 1000/下载速度 = 需要delay的时间(毫秒),比如50kb/s 需要delay200毫秒来接收数据。
查找代码如下:搜索关键字 m_SimulateModem
if (m_SimulateModem) {//Delay sends by 300ms per KB uploaded. //每延迟300ms发送1kb的数据,也就是每1s发送3kb的数据oSession["request-trickle-delay"] = 300//Delay receives by 150ms per KB downloaded.//每延迟150ms下行1kb的数据oSession["response-trickle-delay"] = 150}
请注意,当你存档之后,原本已经勾选的SimulateModem Speeds 会被取消勾选,要记得再到Rules → Performances → Simulate Modem Speeds 勾选喔!
6.设置完成后,清空原有的log,并使用你的app进行弱网条件下的操作,
选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化
如下图:

不同请求耗时多少的图形表,获取那种资源耗时最大,进而进行优化:
如下图
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

相关文章:
Fiddler弱网测试究竟该怎么做?
前言 使用Fiddler对手机App应用进行抓包,可以对App接口进行测试,也可以了解App传输中流量使用及请求响应情况,从而测试数据传输过程中流量使用的是否合理。 抓包过程: 1、Fiddler设置 1)启动Fiddler->Tools->…...
蓝桥杯-平方和(599)
【题目】平方和 【通过测试】代码 import java.util.Scanner; import java.util.ArrayList; import java.util.List; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);//在此…...
从零构建属于自己的GPT系列1:预处理模块(逐行代码解读)、文本tokenizer化
1 训练数据 在本任务的训练数据中,我选择了金庸的15本小说,全部都是txt文件 数据打开后的样子 数据预处理需要做的事情就是使用huggingface的transformers包的tokenizer模块,将文本转化为token 最后生成的文件就是train_novel.pkl文件&a…...
STM32内存介绍
ROM是一种只读存储器,经历了从NOR Flash到NAND Flash再到现在的eMMC的发展。为了便于使用和大批量生产,ROM进一步分为了4种类型:PROM、EPROM、EEPROM和Flash。PROM只能被编程一次,EPROM可擦写可编程且可达1000次,EEPRO…...
Qt::Window 、Qt::Tool是 Qt 框架中的一个窗口标志(Window Flag),用于指定窗口的类型和行为
Qt::Window Qt::Window 是 Qt 框架中的一个窗口标志(Window Flag),用于指定窗口的类型和行为。 在 Qt 中,窗口标志用于控制窗口的外观、行为和交互方式。通过使用不同的窗口标志组合,可以定制窗口的特性,…...
东胜物流软件 SQL注入漏洞复现
0x01 产品简介 东胜物流软件是一款致力于为客户提供IT支撑的 SOP, 帮助客户大幅提高工作效率,降低各个环节潜在风险的物流软件。 0x02 漏洞概述 东胜物流软件 TCodeVoynoAdapter.aspx、/TruckMng/MsWlDriver/GetDataList、/MvcShipping/MsBaseInfo/Sav…...
第1章 爬虫基础
目录 1. HTTP 基本原理1.1 URI 和 URL1.2 HTTP 和 HTTPS1.3 请求1.3.1 请求方法1.3.2 请求的网址1.3.3 请求头1.3.4 请求体 1.4 响应1.4.1 响应状态码1.4.2 响应头1.4.3 响应体 2. Web 网页基础2.1 网页的组成2.1.1 HTML2.1.2 CSS2.1.3 JavaScript 2.2 网页的结构2.3 节点树及节…...
Python教程---序列--序列修改元素
下面和大家讲一下如何进行序列修改元素。 序列修改元素可以进行两个操作。如下: 方法1:通过下标元素来修改 方法2:通过del来删除元素 # 创建一个原始的列表 stus [张三,李四,王五,赵六,王麻子,小红]#通过下标来直接修改元素中的内容 stus[0] 张三123 stus[2] 哈哈#通过d…...
Linux 中的 ls 命令使用教程
目录 前言 如何运用 ls 命令 1、列出带有所有权的文件和目录 2、获取以人类可读的方式显示的信息 3、列出隐藏文件 4、递归列出文件 5、在使用 ls 时对文件和目录做区分 6、列出指定扩展名的文件 7、基于大小对输出内容排序 8、根据日期和时间排序文件 让我们来总结…...
Kubernetes基础入门:Kubernetes的有关概述
Kubernetes基础入门:Kubernetes的有关概述 一、摘要二、为什么需要 Kubernetes?三、Kubernetes 的功能架构 💖The Begin💖点点关注,收藏不迷路💖 一、摘要 随着云计算和容器技术的快速发展,现代…...
C# 无法将“int[]“类型隐式转换为“int?[]“,无法将“string[]“类型隐式转换为“string?[]“
在 C# 中,不能将 int[] 隐式转换为 int?[],因为它们是两种不同的类型。int[] 是一个整数数组,而 int?[] 是一个可空整数数组。要解决这个问题,你可以使用显式转换或创建一个新的可空整数数组。 两种解决方案供大家选择 // 示例…...
趣链科技,HyperChain
目录 趣链科技 HyperChain 产品介绍 CA认证即电子认证服务 趣链科技 趣链区块链平台Hyperchain-核心产品-趣链科技 趣链科技飞洛区块链服务开放平台...
吴恩达《机器学习》9-7-9-8:综合起来、自主驾驶
在神经网络的使用过程中,需要经历一系列步骤,从网络结构的选择到训练过程的实施。以下是使用神经网络时的主要步骤的小结: 一、网络结构的选择 输入层: 第一步是选择网络结构,即确定神经网络的层数以及每层的单元数。…...
HTTP/HTTPS
HTTP/HTTPS 简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP 是一个基于 TCP/IP 通信协议来传递数据&a…...
C语言中#ifndef的头文件保护用法和宏定义用法
文章目录 头文件保护宏定义 #ifndef MY_HEADER_H #define MY_HEADER_H// 这里放置头文件的内容#endif // MY_HEADER_H#ifndef _error#define _error (-1) #endif这两个代码块分别用于不同的目的。 头文件保护 #ifndef MY_HEADER_H #define MY_HEADER_H// 这里放置头文件的内…...
141.【Git版本控制-本地仓库-远程仓库-IDEA开发工具全解版】
Git-深入挖掘 (一)、Git分布式版本控制工具1.目标2.概述(1).开发中的实际常见(2).版本控制器的方式(3).SVN (集中版本控制器)(4).Git (分布版本控制器)(5).Git工作流程图 (二)、Git安装与常用命令1.Git环境配置(1).安装Git的操作(2).Git的配置操作(3).为常用的指令配置别名 (可…...
OpenCV快速入门:移动物体检测和目标跟踪
文章目录 前言一、移动物体检测和目标跟踪简介1.1 移动物体检测的基本概念1.2 移动物体检测算法的类型1.3 目标跟踪的基本概念1.4 目标跟踪算法的类型 二、差值法检测移动物体2.1 差值法原理2.2 差值法公式2.3 代码实现2.3.1 视频或摄像头检测移动物体2.3.2 随机动画生成的移动…...
针对操作系统漏洞的反馈方法
一、针对操作系统漏洞的反馈方法 漏洞扫描指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测(渗透攻击)行为。在进行漏洞扫描后,需先确定哪些是业务…...
常见的软件测试用例设计方法有哪些?
常见的软件测试用例设计方法,个人认为主要是下面这6种: 1)流程图法(也叫场景法) 2)等价类划分法 3)边界值分析 4)判定表 5)正交法 6)错误推测法 这6种常见方法中,我分别按照定义、应用场景、使用步骤、案例讲解…...
【24届校招】c++选手还有机会吗?如何选择更好的出路?
一、今年为什么c选手就业形势如此艰难? 去年c岗位的火热,不少c选手拿到高薪offer,今年转c的人群变多,内卷加剧,高学历大佬多如牛毛,很多比较好的c岗位多人投递,僧多肉少。 从行情来说…...
统一游戏模组管理:如何用XXMI Launcher告别多工具切换的烦恼
统一游戏模组管理:如何用XXMI Launcher告别多工具切换的烦恼 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 你是否曾经为了管理不同游戏的模组而需要在多个工具间来…...
DeepLabV3语义分割环境配置、DeepLabV3语义分割模型代跑训练、DeepLabV3语义分割模型改进创新DeepLabV3语义分割环境配置:Windows、Ubuntu、Centos、
DeepLabV3语义分割环境配置、 DeepLabV3语义分割模型代跑训练、 DeepLabV3语义分割模型改进创新 DeepLabV3语义分割环境配置:Windows、Ubuntu、Centos、Macos等系统环境,如果电脑拥有显卡,可配置GPU版本的DeepLabV3语义分割环境。 DeepLabV3语…...
释放AI潜能:在快马平台利用多模型协作构建高级任务规划Agent
今天想和大家分享一个特别有意思的实践:如何利用InsCode(快马)平台的多AI模型协作能力,快速搭建一个能处理复杂任务的智能规划Agent。这个项目特别适合想体验AI辅助开发的朋友,整个过程不需要复杂的环境配置,直接在网页上就能完成…...
UniApp 集成 Cesium 实战:RenderJS 通信优化与性能调优
1. UniApp集成Cesium的挑战与解决方案 在移动端开发轻量级GIS应用时,很多开发者会选择UniApp作为跨平台框架,同时利用Cesium实现三维地图渲染。但实际集成过程中,最让人头疼的就是性能问题。我去年做过一个林业巡检项目,需要在手机…...
告别野火原子,用江科大STM32F103模板+Keil5,30分钟搞定RT-Thread Nano 3.0.3移植
江科大STM32F103模板Keil5快速移植RT-Thread Nano 3.0.3实战指南 如果你正在使用江科大的STM32F103教学模板,想要快速实现RT-Thread Nano 3.0.3的移植,这篇文章将为你提供一个30分钟完成的详细方案。相比野火、正点原子等开发板,江科大模板在…...
HunterPie:怪物猎人世界终极数据覆盖层工具,实时监控提升狩猎效率
HunterPie:怪物猎人世界终极数据覆盖层工具,实时监控提升狩猎效率 【免费下载链接】HunterPie-legacy A complete, modern and clean overlay with Discord Rich Presence integration for Monster Hunter: World. 项目地址: https://gitcode.com/gh_m…...
从零打造微信聊天记录导出工具:PySide6界面开发与PyInstaller打包实战
1. 为什么需要自己开发微信聊天记录导出工具 最近有不少朋友问我,为什么市面上那么多微信聊天记录导出工具,还要自己动手开发?这个问题问得好。作为一个经常需要备份聊天记录的程序员,我试过不下十款工具,发现它们普遍…...
C语言运算符入门:零基础必学的5类核心运算符
对于编程入门而言,C语言是经典语言,运算符属于其最基础且最核心知识点当中的一个,后续去学习分支语句的时候,离不开对运算符的熟练运用,学习循环语句的时候,同样离不开对运算符使用熟练,学习函数…...
MT5工具实战:快速生成文案变体,提升内容创作效率
MT5工具实战:快速生成文案变体,提升内容创作效率 1. 为什么你需要文案变体生成工具? 在日常内容创作中,我们经常面临一个共同挑战:如何用不同方式表达相同的意思。无论是营销文案、产品描述还是社交媒体内容…...
UniApp实战:搞定Android全版本MAC地址获取(附完整代码与避坑指南)
UniApp跨平台开发中Android设备MAC地址获取的深度实践 在移动应用开发领域,设备唯一标识符的获取一直是个既基础又复杂的问题。特别是在Android生态系统中,随着系统版本的迭代,获取MAC地址的方式经历了多次变化,这给开发者带来了…...
