一、安装fiddler
二、设置fiddler配置
1、在Tools --> Options --> https中,勾选“Decrypt HTTPS traffic”、“Ignore server certificate errors (unsafe)”、“Check for certificate revocation”;
2、在Tools --> Options --> Connetions中,勾选“Allow remote computers to connet”,设置端口号Fiddler listens on port ,默认端口为8888;
3、查出本地电脑的IP地址;Windows+r,输入“cmd”进入命令行,在命令行输入ipconfig,查出对应的ipv4的IP;
三、设置手机代理
IOS:
1、在设置 --> 无线局域网 --> 连接的wifi,设置http代理;
2、配置代理,选中“手动”模式,输入服务器IP,端口号;服务器IP是本地电脑IP(192.168.x.x),端口号为fiddler设置的端口号,此处为8888;
3、手机访问地址http://ip:port,下载fiddler证书;
4、安装证书,在“设置”–>“已下载描述文件”中,安装fiddler证书;
5、设置证书完全信任,在“设置”–> “通用”–> “关于本机” --> “证书信任设置” --> 完全信任fiddler证书;
四、启动手机APP
五、查看fiddler获取信息
1、全选左边的url,用ctrl+a全选。
六、查看APP启动时间
1、打开fiddler,在菜单栏上面找到Rules->CustomRules ;
2、把下面的代码复制到fiddler里面
function BeginRequestTime(oS: Session)
{
if (oS.Timers != null)
{
return oS.Timers.ClientBeginRequest.ToString();
}
return String.Empty;
}
public static BindUIColumn("Time Taken")
function CalcTimingCol(oS: Session){
var sResult = String.Empty;
if ((oS.Timers.ServerDoneResponse > oS.Timers.ClientDoneRequest))
{
sResult = (oS.Timers.ServerDoneResponse - oS.Timers.ClientDoneRequest).ToString();
}
return sResult;
}
截图:
3、此时fiddler上多了一个字段:Time Taken
4、清空所有请求,使用手机启动APP,获取到的所有请求时间加在一起,就是app启动时间。
七、设置弱网
oSession[“request-trickle-delay”] = “80”,设置上传延迟
oSession[“response-trickle-delay”] = “100”,设置返回延迟
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
//200ms = 5kb/s
//1ms = 1M/s
//80ms = 12.5kb/s
//10ms = 100kb/s
//2ms = 500kb/s
oSession["request-trickle-delay"] = "80";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "100";
}
八、问题
1、fiddler抓包失败,一直报错:System.IO.IOException 由于远程方已关闭传输流,身份验证失败。
原因:可能是fiddler默认证书和手机不兼容;
解决方法:下载fiddlercertmaker.exe文件并运行,重启fiddler,手机上重新安装fiddler证书。
下载地址:https://telerik-fiddler.s3.amazonaws.com/fiddler/addons/fiddlercertmaker.exe