基于移动端抓包使用Fiddler模拟弱网测试

随着移动互联网的发展,移动端测试工作也提上日程,那移动互联网测试与web测试有什么不一样?首先它们架构不一样,再者基于的场景不一样,PC端网络基本固定宽带,而移动互联的网络测试一般分为:2G、3G、4G到目前的5G新时代。当然不同级别下的网络类型都由不同的运营商发布,不同的网络类型传输速度也不一样,又基于不同的手机品牌与型号版本,平时大家做手工测试与自动化测试一般都是基于功能测试而展开,很少做App端的弱网测试,对于App移动端网络测试有没有什么工具可以帮助我们完成弱网测试呢?当然也是有的,目前Fiddler抓包工具就可以供我们模拟真实的网络环境来实现弱网测试,一般如何实现弱网测试呢?接下来就是我们需要学习的相关内容。

什么是移动端弱网测试?

所谓移动端弱网测试指在信号网络带宽比较差的情况下来模拟真实用户APP端的测试,一般基于功能层面就是根据下图所示的品牌与运营商进行覆盖相关的硬件机型弱网。一般主要看上传下下载和带宽的浮动区别范围值,在此条件下对开发应用程序的App软件进行测试这就是移动端的弱网测试,希望大家能理解。

根据大部分用户使用移动端软件模拟弱网测试,调研而得出来的网络数据情况, 弱网环境控制上行速率为10 下行速率为30这个范围内都算弱网测试。

为什么要进行移动端弱网测试?

很多时候我们做测试仅仅考虑正常网络环境的应用程序测试,从而忽视了信号弱网环境的测试,如果用户当前使用的APP在弱网环境下访问系统就会引起应用程序出现异常,也会影响到用户的心情,可能会导致软件用户的大量流失,为了更好的保证软件产品的质量,我需要全面的对APP应用程序进行测试,以便增强用户的粘性。

Fiddler抓包原理过程详解:

在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应。Fiddler 是以代理web 服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。网络请求使用fiddler,fiddler从中捕获数据,由于fiddler充当代理人的角色,具有解密https功能。因此,Fiddler成了一款专业的抓包工具,Fiddler不仅可以用来抓包,还能用来捕获数据以及解包乃至做移动端的抓包与模拟手机端弱网测试。不但如此,Fiddler还可以用来抓PC端或者移动App端的数据包,还可以用来做基于Cookie与Session欺骗的安全性测试相作。

设置浏览器代理操作步骤如下:

"设置--高级--系统--打开代理服务器--局域网设置--代理服务器"勾上。代理开关为开:可以抓到包,代理开关为关:不能抓包。

前提条件:

1).已安装Fiddler。

2).有Wifi网络。

3).PC端与移动端网络一致。

4).测试APP能支持代理设置 。

首先需要设置手机代理,操作步骤如下:

第一步:打开Fiddler,进入到Tools —> options,勾选Decrypt HTTPS traffic选项

注:PC端网络与APP端网络在同一个局域网下,手机和电脑都是连的无线网络或者公司网络。

2. 手机端设置-WLAN设置网络代理,对WLAN网络进行编辑,选择手动代理方式,主机名填写电脑的ip地址(通过命令行查询IP:cmd-ipconfig),

手机端口号与fiddler端口需一致,例如:88

搜图编辑88。

查看fiddler界面IP,点击右上角Online可以查看到手机端的IP与PC端IP一致。

移动端通过浏览器访问:端口,需配置HTTPS证书,用PC端的端口和fiddler设置的端口安装证书,通过请求访问网络,分析fiddler能否能正常抓包。如果手机网络能够正常访问,就能正常抓包。

注意事项:抓包前Fiddler工具一定要勾选 File--->Capture Traffic选项,否则不能抓包,大家可以通过勾选与取消勾选进行测试;

下载Https证书可以抓HTTPS的包,如下图所示:

使用Web浏览器代理抓包需要配置IP与端口,端口号需与Fiddler工具中端口一致,如下图所示:

在菜单栏options选项中,勾选Allow remote computers to connect选项,如下图所示:

PC端与电脑网络一致,Connection设置如下图,端口号:8888

手机上需设置代理IP和port,分别为PC端的IP与Port

打开fiddler找到菜单rules勾选Performance-选项,如下图所示:

打开customize Rules,如下图所示:

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";

}

注意:此值oSession修改越大,网络将会越弱,大家可以使用专业的网速测试工具进行验证网络的准确性。

勾选Performance.

能达到以下效果:

用例场景一:网络较弱的情况,会产生页面加载过慢或者出现程序闪退等问题。

原因:WebDriver产生超时处理未在UI线程。toast、关闭页面等操作需要在UI线程。

用例场景二:302页面跳转,达到内置超时阀值后,WebDriver自动关闭。

原因:业务有页面加载超时自动关闭的逻辑,超时机制未考虑302场景。

总结:结合以上内容详细讲解,相信大家对移动端抓包以及模拟弱网环境的过程已经掌握,希望大家能够结合知识点灵活运用。