ctrl + R 打开脚本编辑,全部替换为下方脚本内容后保存
import System;
import Fiddler;
class Handlers
{
// 菜单:规则 -> 弱网网络类型
public static RulesString("弱网网络类型", true)
RulesStringValue(0, "关闭", "off")
RulesStringValue(1, "2G", "2g")
RulesStringValue(2, "3G", "3g")
RulesStringValue(3, "4G", "4g")
RulesStringValue(4, "5G", "5g")
RulesStringValue(5, "弱 Wi-Fi", "wifi")
var weaknet_profile: String = "off";
static function OnBeforeRequest(oSession: Session) {
var up_kbps: int = 0;
var down_kbps: int = 0;
var rtt_ms: int = 0;
switch (weaknet_profile) {
case "2g":
up_kbps = 15;
down_kbps = 50;
rtt_ms = 800;
break;
case "3g":
up_kbps = 128;
down_kbps = 384;
rtt_ms = 300;
break;
case "4g":
up_kbps = 2000;
down_kbps = 10000;
rtt_ms = 100;
break;
case "5g":
up_kbps = 10000;
down_kbps = 50000;
rtt_ms = 30;
break;
case "wifi":
up_kbps = 1000;
down_kbps = 3000;
rtt_ms = 80;
break;
default:
return;
}
// 每传输 1 KB 的延迟,数值越大,网络越慢
oSession["request-trickle-delay"] =
"" + Math.round(8000 / up_kbps);
oSession["response-trickle-delay"] =
"" + Math.round(8000 / down_kbps);
// 请求方向增加半个 RTT 延迟
System.Threading.Thread.Sleep(Math.round(rtt_ms / 2));
}
static function OnBeforeResponse(oSession: Session) {
var rtt_ms: int = 0;
switch (weaknet_profile) {
case "2g":
rtt_ms = 800;
break;
case "3g":
rtt_ms = 300;
break;
case "4g":
rtt_ms = 100;
break;
case "5g":
rtt_ms = 30;
break;
case "wifi":
rtt_ms = 80;
break;
default:
return;
}
// 响应方向增加另半个 RTT 延迟
System.Threading.Thread.Sleep(Math.round(rtt_ms / 2));
}
}然后通过规则 – 弱网网络类型开启或选择不同网络模拟
THE END








