当前位置: 首页 > news >正文

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进行弱网条件下的操作,
选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化

如下图:

不同请求耗时多少的图形表,获取那种资源耗时最大,进而进行优化:

如下图

 

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

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

http://www.lryc.cn/news/245907.html

相关文章:

  • 蓝桥杯-平方和(599)
  • 从零构建属于自己的GPT系列1:预处理模块(逐行代码解读)、文本tokenizer化
  • STM32内存介绍
  • Qt::Window 、Qt::Tool是 Qt 框架中的一个窗口标志(Window Flag),用于指定窗口的类型和行为
  • 东胜物流软件 SQL注入漏洞复现
  • 第1章 爬虫基础
  • Python教程---序列--序列修改元素
  • Linux 中的 ls 命令使用教程
  • Kubernetes基础入门:Kubernetes的有关概述
  • C# 无法将“int[]“类型隐式转换为“int?[]“,无法将“string[]“类型隐式转换为“string?[]“
  • 趣链科技,HyperChain
  • 吴恩达《机器学习》9-7-9-8:综合起来、自主驾驶
  • HTTP/HTTPS
  • C语言中#ifndef的头文件保护用法和宏定义用法
  • 141.【Git版本控制-本地仓库-远程仓库-IDEA开发工具全解版】
  • OpenCV快速入门:移动物体检测和目标跟踪
  • 针对操作系统漏洞的反馈方法
  • 常见的软件测试用例设计方法有哪些?
  • 【24届校招】c++选手还有机会吗?如何选择更好的出路?
  • hvigor ERROR: Failed :entry:default@ProcessLibs...【鸿蒙开发-BUG已解决】
  • 由于没有公钥,无法验证下列签名: NO_PUBKEY
  • vue3 for循环创建的多个e-form 添加校验
  • 【虚拟机Ubuntu 18.04配置网络】
  • MySQL 中的 JSON_CONTAINS 函数详解
  • 详细解答T-SNE程序中from sklearn.manifold import TSNE的数据设置,包括输入数据,绘制颜色的参数设置,代码复制可用!!
  • ClickHouse中的物化视图
  • 界面组件Telerik UI for WinForms中文教程 - 创建明暗模式的桌面应用
  • C语言:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
  • 王者荣耀java版
  • 前缀和与差分