听海——sky 发表于 2018-3-28 14:30:48

app 性能测试--弱网

介绍:
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,
设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。

Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler会自动设置代理,
退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler
没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler.




Fiddler抓包及分析:
打开Fiddler,如下图所示





1.配置Fiddler,充许“远程连接”

在菜单tool -->Fiddler Options -->Connections -->Allow remote computers to connect(允许远程计算机连接)
选中,之后重启一下Fiddler。



2. 获取Fiddler所在机器的IP地址

使当前打开无线网卡,连接无线网络,然后查看当前PC的IP,通过ipconfig查找,如下图所示,查到的结果是
192.168.1.114。



3.手机上配置Fiddler为代理

使手机连上无线网卡,连接无线网络,并与PC连接同一个WIFI热点,连上之后,在设置-->WLAN -->长按当前
连接的网络-->修改网络 -->显示高级,如下图所示,代理设置:手动;代理服务器主机名:步骤2中查出的IP
(192.168.1.114),端口:8888,然后点击“保存”。

4.模拟弱网

1、修改弱网参数

Fiddler -->Customize Rules(自定义规则),点击,弹出CustomRules.js文件,此文件位于:位于: C:\Document
s and Settings\\My Documents\Fiddler2\Scripts\CustomRules.js 下,找m_SimulateModem这个字,你
会找到下面这段:



view plaincopy

if (m_SimulateModem) {
    // Delay sends by 300ms per KB uploaded.
    oSession["request-trickle-delay"] = "300";   
    // Delay receives by 150ms per KB downloaded.
    oSession["response-trickle-delay"] = "150";   
}

这就是Fiddler 模拟网路速度的原理,每上传/下载1KB 要delay 多久…其中,request是请求(上传),response
是返回(下载),如果习惯用kbps 去算的话,那么我们的算法就是 8*1000/下载速度 = 需要delay的时间(毫
秒),比如50kb/s需要delay200毫秒来接收数据。

计算过程:1KB传送需要延时300ms ,那么1S可以传送 8*1000/300 Kb,需要延时300ms,那么要1S传送
2.7Kb, 将延时:2962ms

2G的上传速率为:2,7Kbs下载速率为:9.6Kbs 所以此处设置:2962 ms 与833 ms,代码如下:

view plaincopy

if (m_SimulateModem) {
   // Delay sends by 300ms per KB uploaded.
   oSession["request-trickle-delay"] = "2962";   
   // Delay receives by 150ms per KB downloaded.
   oSession["response-trickle-delay"] = "833";   
}
2、确定设定的参数

设置完之后,记得再到Rules → Performances → Simulate Modem Speeds 勾选

5.停掉PC与手机上面通上网的应用

把PC与手机上面上网的进程杀掉,如果上网的应用太多了,那网速肯定也会受到影响,这样出来的报告,就
会不准确。

6.进行抓包

在手机上面打开要测试的应用或者网页,就会在fiddler中有相应的记录,如下图所示。



点击其中一条记录,在右侧的statistics中就会显示当前界面相应数据。bytes Sent 是指发送的请求数,Bytes
Received:返回的数据量,Overall Elapsed:总耗时。


页: [1]
查看完整版本: app 性能测试--弱网