fiddler 弱网测试
介绍:
Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。
PC端直接使用,Mac端建议安装虚拟机(见最后)
Fiddler下载:
下载地址: Fiddler | Web Debugging Proxy and Troubleshooting Solutions
打开以后选择你的相关信息如下图:
下载完成后双击安装包,如下图:
点击I Agree按钮,然后选择你想要存放的安装目录,不需要修改,使用默认的即可
点击Install按钮
点击Close按钮,安裝成功
下载https证书
打开软件,然后点击某一个请求,发现该请求的左边是一个锁的样式,原因是https加密导致。
安装证书两种方法(任选一):
方法1:勾选后点击右边的Actions按钮选择**“Trust Root Certificate”**选项,然后全部选择是就行了。
方法2:
①勾选后点击右边的Actions按钮选择第二个选项将证书导出到桌面,然后再在对应的浏览器里面添加即可。
②下一步
连接设备
一、Android
1.确保手机和PC在同一网络环境下
手机和电脑必须在同一局域网,手机最好也关闭4G/5G网络流量, 并且使用wifi,让手机和fiddler在同一局域网下!
查看本机ip地址:让android手机的网络进出口指向局域网中fiddler服务地址, 那么我们这里就必须要知道Fiddler的ip地址和端口号(port),Fiddler的ip地址就是我们当前电脑中的本机ip地址
方法如下:
win+R 调出运行然后输入 cmd打开命令行终端窗口,输入ipconfig, 找到其中的IPv4地址即为本机ip
如图
可以对照一下当前所安装的Fiddler中的ip地址是否一致,你可以直接在fiddler上 将鼠标放置于 Online 工具上就会显示本机ip地址,如果一样那么久可以确保一会设置手机和电脑在同一个局域网内!
Fiddler设置端口与允许远程连接
在Fiddler中我们还要设置远程连接权限和端口号
找到Fiddler菜单栏中的Tools ----> Options---->Connections
勾选Allow remote computers to connect(允许远程计算机连接) 然后设置一个端口,也可以默认为8888
如图
以上所有Fiddler设置之后最好是重启一下Fiddler,才可以让配置生效。
2.android手机设置网络代理
在确定了手机和fiddler在同一局域网下之后, 那么我们来到android手机的设置选项下,找到WLAN
例如:
然后点击你当前所在的wifi网络环境下的名称
例如
然后选择代理(或选择高级设置)
如图
把其中的“无”改为“手动”
然后返回到上一步,输入Fiddler的本地ip和设置Fiddler的端口号
如图
设置后保存。
3.android手机配置证书
在抓取android手机数据包的时候 跟 web端也是一样,都需要配置证书,否则是无法正常进行抓包的!
之前已经在我们的android手机上配置好了Fiddler的代理服务了,那么现在就可以通过ip+port的方式来访问Fiddler 从而下载对应的证书!
方法如下:
在android手机上打开(自带)的浏览器,输入刚刚配置的ip+port来下载证书
例如:192.168.0.109:8888, 如果不出意外的话就会出现如下界面:
我们点击FiddlerRoot certificate(根证书)下载到android手机上!
如图
继续点击下载
温馨提示:这个时候可能有些android手机会出现以下问题,会出现 无法安装证书 因为无法读取证书文件的字样
解决方案:在下载之前,你可以手动修改证书的后缀名,修改为.crt
当我们下载的时候,就可以点击编辑按钮,进行文件名的编辑, 最后保存!
如图
然后再手机的下载管理中 找到刚刚下载好的证书 并且打开它
如图
最后点击保存即为 安装
那么如果你要查看安装的证书, 那么可以在手机中 打开设置-->其他设置-->设备与隐私-->信任的证书然后点击用户,就可以查看到刚刚所安装好的Fiddler证书
如图
其他手机可以在设置中搜索信任进行查找,大同小异!
注意(Notice)
每连一台电脑所安装的fiddler提供的证书都是不一样的,要记住这个道理 那么测试完一台电脑之后,如果要在另外一台电脑上测试,记得在证书管理里删除之前的fiddler证书,因为这个之前的fiddler证书只对应之前那台电脑里面所安装的fiddler,没法用于连其他的fiddler, 因此换一台电脑,测试必须重新配置一下手机证书
二、iOS
1.确保手机和PC在同一网络环境下
在你的ios手机上找到连接的wifi,查看一下ip地址
如图
然后在电脑上打开命令行,输入ping 手机ip,看看能不能ping通
如图
如果有以上返回说明 当前手机和PC 就是在同一网络环境下,其他关于Fiddler的设置步骤同android操作
2.ios手机设置网络代理
在确定了ios手机和fiddler在同一局域网下之后, 那么我们来到ios手机的设置选项下,找到WLAN,查看连接的wifi
如图
进入HTTP代理
设置为手动,然后填写服务器, 这里就跟android是一样的, 也是输入fiddler在电脑本地的ip地址和端口
如图
最后点击存储即可!
3.ios手机下载安装与配置证书
使用ios手机中自带的的safari浏览器,输入配置好的ip+端口跳转到 Fiddler Echo Service 证书下载页!
如图
点击FiddlerRoot certificate弹出此网址尝试下载一个配置描述文件,您要允许吗?,点击允许按钮
下载完成,弹出提示已下载描述文件
安装证书
根据提示,回到手机的设置中,找到已下载描述文件,可以看到下载的证书在那里了!
如图
根据提示,回到手机的设置-->通用中,找到描述文件,可以看到下载的证书
然后开始安装证书
继续点击安装
完成证书的安装
设置信任证书
安装好证书之后,还要在ios系统中设置信任刚刚下载好的证书
我们回到ios系统中的设置--->通用--->关于本机中,对证书进行信任设置,选择证书信任设置选项
如图
开启信任
如图
点击继续
必须要开启证书信任,否则会出现无法抓到HTTPS包的情况。
设置弱网
步骤1:在Fiddler中启动弱网
打开Fiddler→Performance→勾选Simulate Modem Speed,勾选之后你会发现网络速度已经慢下来了,因为系统里有预设的网络参数值。
步骤2:设置网络参数
(1)打开Fiddler→Rules→Customize Rules;
(2)找到下面框出的代码,在这里设置弱网参数值;if (m_SimulateModem)
可使用ctrl+f快速搜索
设置完成后,保存。
步骤三:关闭弱网设置
(1)打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,关闭弱网模拟。
当在fiddlerscript存档之后,原本已经勾选的Simulate Modem Speeds会被取消,需要再操作一遍:Fiddler,Rules->Performance->勾选 Simulate Modem Speeds
备注:如果m_SimulateModem为True,也就是fiddler开启了弱网模式,那么上传1KB的内容 需要300ms(转化后的上传速度为1KB/0.3s=3.3KB/s),下载1KB内容需要150ms(转化后的下载速度为1KB/0.15s=6.6KB/s)。
(2)如果要模拟2G网络, 上传下载配置如下:
oSession["request-trickle-delay"] = "3000";
oSession["response-trickle-delay"] = "1500";
如果要模拟3G网络,上传下载配置如下:
oSession["request-trickle-delay"] = "20" ;
oSession["response-trickle-delay"] = "10";
如果需要其他网络情况,可自行设置
手机APP使用SIM卡数据流量的话,要考虑不同的运营商:联通、移动、电信,根据上行速率、下载速率来设置参数。
计算公式为:[1/(上或下行速率/8)] x 1000
注意:1KB=8kb
各运营商网络相关
2G网络:
上行:2.7K
下行:9.6K
上行:[1/(2.7/8)]X1000=2962ms
下行:[1/(9.6/8)]X1000=833ms
3G网络:
电信:上行:1.8M 1.8x1024
下行:3.1M 3.1x1024
上行:{1/[(1.8x1024)/8]}x1000=4.34ms
下行:{1/[(3.1x1024)/8]}x1000=2.52ms
移动:上行:384k
下行:2.8M
上行:[1/(384/8)]x1000=20.8ms
下行:{1/[(2.8x1024)/8]}x1000=2.79ms
联通:上行:5.76M
下行:7.2M
上行:{1/[(5.76x1024)/8]}x1000=1.35ms
下行:{1/[(7.2x1024)/8]}x1000=1ms
相应修改上方步骤二对应的数值就可以模拟2G和3G进行弱网测试了
Mac:M1安装windows11虚拟机
浏览器测试相关:
备注:
一般浏览器开发者工具(推荐Chrome)自带模拟弱网的功能。
浏览器打开开发者工具(快捷键F12);选择Network栏,根据需求选择网络状态,比如在线、3G、2G、离线等。
查看请求
然后我们再打开一个新的网页(例如百度),查看请求
设置断点 如图下
Before Requests 在请求之前
修改wd 值后的效果图