Fiddler 弱网设置保姆级教程
通过Fiddler模拟各种网络环境进行应用测试。首先安装Fiddler并配置移动设备代理,启用"Simulate Modem Speeds"功能模拟2G网络,还可在CustomRules.js中自定义延迟、带宽等参数。文章提供了2G/3G/4G等常见网络参数参考,并介绍了扩展功能如模拟丢包的方法。通过调整request-trickle-delay、response-trickl

在如今这个网络遍布的时代,弱网环境却依旧是我们无法忽视的存在。不管是在偏远地区、地下停车场,还是人员密集场所,网络信号不佳、速度缓慢的情况时有发生。对于开发者而言,确保应用程序在弱网环境下也能稳定运行、拥有良好的用户体验,是一项至关重要的任务。而 Fiddler,这款强大的 Web 调试代理工具,就能帮助我们轻松模拟弱网环境,开展相关测试工作。接下来,就为大家详细介绍 Fiddler 的弱网设置方法
一、Fiddler 基础准备
首先,你得确保已经在电脑上安装好了 Fiddler。若尚未安装,可以前往其官方网站(https://www.telerik.com/fiddler)下载对应版本。安装完成后,启动 Fiddler,你会看到如下界面:

此时,Fiddler 默认处于捕获网络流量的状态,右下角会显示 “Capturing”。若你需要捕获移动设备(如手机 APP)的网络流量,还得进行如下操作:

1.查看电脑局域网 IP:在 Fiddler 顶部,会显示类似 “Running: (IPv4) 192.168.x.x:8888” 的信息,其中 “192.168.x.x” 就是你电脑的局域网 IP。

2.设置移动设备代理:将手机连接到与电脑相同的 WiFi 网络,接着手动设置代理。在代理设置中,IP 地址填写上一步查看到的电脑局域网 IP,端口则使用默认的 8888。不同手机设置代理的路径可能有所差异,不过一般都能在 WiFi 设置的 “高级选项” 中找到。
二、启用弱网模拟规则
打开网络节流功能:点击 Fiddler 菜单栏中的 “Rules”,选择 “Performance”,再点击 “Simulate Modem Speeds”。或者,你也可以直接使用快捷键 “Ctrl + M” 来切换开关,当该选项被勾选时,就表示弱网模拟已启用。后预设规则说明:Fiddler 默认的 “Simulate Modem Speeds” 规则,模拟的是传统调制解调器的低速网络。其具体参数为:延迟方面,上行和下行均为 300ms;带宽方面,上行和下行约为 56 Kbps。这种模式适用于模拟如 2G 网络这样的极端弱网场景。但在实际测试里,我们往往需要根据不同网络环境,进一步自定义参数。
三、自定义弱网参数(高级配置)
倘若默认的弱网参数无法满足你的测试需求,别担心,Fiddler 允许我们通过修改节流脚本,来自定义弱网参数。操作方法如下:
修改节流脚本:点击菜单栏中的 “Rules”,选择 “Customize Rules”,或者直接按下快捷键 “Ctrl + R”,这样就会打开 “CustomRules.js” 文件。


找到相关代码段:在打开的 “CustomRules.js” 文件中,搜索 “m_SimulateModem”,便能找到节流代码段。一般情况下,该代码段如下:

调整网络参数:
- 延迟参数:“request-trickle-delay” 代表每个数据包上传时的延迟时间,单位为毫秒;“response-trickle-delay” 则代表每个数据包下载时的延迟时间,单位同样是毫秒。举例来说,若你想模拟网络延迟较高的情况,可将这两个值增大,比如改为 “6000”,这样上行和下行每个数据包的延迟时间就都变为了 6000ms。
- 带宽参数:“request-trickle-bandwidth” 和 “response-trickle-bandwidth” 分别用于限制上传和下载的带宽,单位是字节 / 秒。假设你要模拟 3G 网络的带宽,已知 3G 网络下载带宽约为 1.2Mbps(即 1.2 * 1024 * 1024 / 8 = 153600 B/s),上传带宽约为 0.6Mbps(即 0.6 * 1024 * 1024 / 8 = 78643.2 B/s),那么你可以将代码修改为:
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "6000";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "6000";
oSession["request-trickle-bandwidth"] = "157286"; // 上行带宽(近似值)
oSession["response-trickle-bandwidth"] = "78643"; // 下行带宽(近似值)
}

备注:在Fiddler脚本中的注释快捷键是Ctrl+k+c,对应的取消注释快捷键是Ctrl+k+u。
四、验证弱网效果
完成上述设置后,就该验证一下弱网效果啦。你可以通过以下方式进行验证:
- 测试网页或 APP:在浏览器中打开一些常用网站,或者在手机 APP 中进行各种操作,观察页面加载速度是否明显变慢。比如,原本在正常网络下几秒钟就能加载完成的网页,在弱网环境下可能需要数十秒甚至更长时间才能完全加载出来。
- 查看请求详情:在 Fiddler 的会话列表中,选中某个请求,然后点击右侧的 “Statistics” 选项卡,这里会显示该请求的实际传输时间、带宽等详细信息。通过这些数据,你能更直观地了解弱网环境对网络请求的影响。
五、创建自定义规则模板
在实际测试过程中,我们可能需要模拟多种不同的弱网场景,每次都去修改代码段会比较麻烦。这时,我们可以创建自定义规则模板,方便快速切换不同的弱网设置。具体操作如下:
在 “CustomRules.js” 文件中,复制修改后的代码段,然后创建多个条件分支。注意保持方括号语法
// 模拟2G网络
if (m_Simulate2G) {
oSession["request-trickle-delay"] = "300";
oSession["response-trickle-delay"] = "300";
oSession["request-trickle-bandwidth"] = "57344";
oSession["response-trickle-bandwidth"] = "57344";
}
// 模拟3G网络
if (m_Simulate3G) {
oSession["request-trickle-delay"] = "100";
oSession["response-trickle-delay"] = "100";
oSession["request-trickle-bandwidth"] = "157286";
oSession["response-trickle-bandwidth"] = "78643";
}
// 模拟4G弱信号
if (m_Simulate4GWeak) {
oSession["request-trickle-delay"] = "50";
oSession["response-trickle-delay"] = "50";
oSession["request-trickle-bandwidth"] = "500000";
oSession["response-trickle-bandwidth"] = "250000";
}
六、常见弱网场景参数参考
为了方便大家进行弱网模拟测试,这里为大家整理了一些常见弱网场景的参数:
| 场景 | 延迟(ms) | 下载带宽(B/s) | 上传带宽(B/s) | 丢包率(需脚本扩展) |
|---|---|---|---|---|
| 2G 网络 | 300 | 57344(≈56 KB/s) | 57344 | 3% - 5% |
| 3G 网络 | 100 | 157286(≈1.2 Mbps) | 78643(≈0.6 Mbps) | 1% - 3% |
| 4G 弱信号 | 50 | 500000(≈4 Mbps) | 250000(≈2 Mbps) | 2% - 4% |
| 高延迟卫星 | 1000 | 250000(≈2 Mbps) | 125000(≈1 Mbps) | 5% - 10% |
| WiFi 弱信号 | 80 | 800000(≈6.4 Mbps) | 400000(≈3.2 Mbps) | 1% - 2% |
| 地铁移动网络 | 150 | 300000(≈2.4 Mbps) | 150000(≈1.2 Mbps) | 4% - 6% |
七、扩展功能:模拟丢包和乱序
Fiddler 默认是不支持模拟丢包和乱序功能的,但通过一些方法,我们可以对其进行扩展。
自定义脚本注入丢包:在 “OnBeforeRequest” 函数中添加随机丢包逻辑,需使用方括号语法,示例如下:
// 随机丢包率5%
if (Math.random() < 0.05) {
oSession["ui-color"] = "red"; // 标记丢包请求为红色
oSession.Abort(); // 丢弃请求
}
结合第三方工具:你还可以使用如 Clumsy 或 Network Emulator for Windows Toolkit(NEWT)等第三方工具,与 Fiddler 配合使用,叠加网络干扰,模拟更复杂的网络环境。
还可以在这里面添加空响应并绕过服务器,模拟请求失败
// 随机丢包5%
if (math.random() < 0.05) {
osession["ui-color"] = "red";
// 创建空响应并绕过服务器,模拟请求失败
osession.utilcreateresponseandbypassserver();
osession.responsecode = 503; // 服务不可用
osession["ui-backcolor"] = "lightpink";
return;
}
八、注意事项
- HTTPS 流量捕获:若要捕获 HTTPS 流量,需要安装 Fiddler 根证书。具体操作是点击 Fiddler 菜单栏中的 “Tools” -> “Options” -> “HTTPS”,勾选 “Decrypt HTTPS traffic”,按照提示安装证书即可。
- 性能影响:当设置较高的丢包率或较低的带宽时,可能会导致测试工具自身出现卡顿现象。此时,建议关闭无关的流量捕获,可通过 “Filters” 功能进行设置。
- 恢复网络:测试完成后,务必取消勾选 “Simulate Modem Speeds”(可通过快捷键 “Ctrl + M” 操作),并关闭 Fiddler 代理,让网络恢复正常状态。
更多推荐



所有评论(0)