前言

前段时间,用户使用我们小程序产品说是点击某按钮无反应,排查了各种情况,我这边ok,是否网络不畅,地图没调出来,但我又不能跑到停车场、地下室、电梯等去模拟弱网,于是网上搜索了相关内容,在此记录,以便之后再用;

一、使用Fiddler模拟弱网情况

1. 打开Fiddler工具----->点击菜单中Rules----->Customize Rules,进入Fiddler ScriptEditor界面;根据实际情况修改以下图中网络延时时间;

Python 模拟弱网 测试系统 fiddler模拟弱网主要看什么?_Python 模拟弱网 测试系统

模拟2G网络的速度:请求(上行)时间延迟设置为3000ms,响应(下行)时间延迟设置为1000ms

(1)、(1KB/下载速度)x1000 = 要delay的毫秒数 来计算

(2)、 

1 Byte = 8 bits

1 Kb = 1024 bits

1 KB = 1024 bytes

1 Mb = 1024 Kb

根据以上得出1KB=8Kb

(3)、计算出上行延迟为(1/(2.7/8))x1000=2962ms ,同理下行延迟未(1/(9.6/8))x1000=833ms。

Python 模拟弱网 测试系统 fiddler模拟弱网主要看什么?_数据_02

Python 模拟弱网 测试系统 fiddler模拟弱网主要看什么?_4G_03

 

 

2. 点击菜单中Rules ---- > Performance---->勾选Simulate Modem Speeds ,如下图所示:

Python 模拟弱网 测试系统 fiddler模拟弱网主要看什么?_数据_04

二、不同网络环境设置可参考如下图:

Python 模拟弱网 测试系统 fiddler模拟弱网主要看什么?_Python 模拟弱网 测试系统_05

 

四、 speedtest工具进行在线测速
在没有模拟弱网的时候,使用speedtest 在线测速,如图所示:

使用Fiddler 工具模拟弱网情况(参考二中的 第2步骤)后,如图所示:

使用此工具可以查看我们模拟弱网是否成功。

那么弱网模拟成功后,就可以进行app在弱网情况下的测试了。

一、弱网测试的思路篇

 

Python 模拟弱网 测试系统 fiddler模拟弱网主要看什么?_4G_06

弱网测试概要思路


总结了下(如上图所示),弱网测试主要进行特殊网络状态下的功能测试同时关注用户体验,具体来说,弱网测试包括弱网功能测试、无网状态测试、网络切换测试等,测试的同时关注用户体验的诸多方面。

1.弱网功能测试

这一部分主要是在各种非wifi网络环境下进行的功能测试,同时模拟高延时和高丢包的异常网络环境进行健壮性测试。2G/3G/4G的网络可以通过使用电话卡移动/联通/电信等网络进行模拟,关注页面的响应时间、页面呈现是否完整一致等。高延迟和高丢包的网络环境需要借助工具来模拟,在windows环境下可以使用fiddler和network emulator for windows toolkit来模拟,在mac环境下则可以使用charles和Xcode自带的开发环境网络异常模拟工具进行。工具的使用在工具篇具体介绍。
弱网功能测试建议将整体的功能测试用例在弱网环境下进行一轮测试,相同模块下的功能可以分多个网络条件进行测试。这部分发现的问题可能会有:页面图片在弱网环境下加载不出来(图片加载逻辑需优化)、需要模版的页面版式结构混乱(模版文件在弱网环境的加载需优化)、页面响应时间较长没有任何显示(页面显示逻辑待优化、重试机制加入)等。

2.无网状态测试

无网状态测试则是在切段网络的情况下进行的测试,主要关注页面的显示与交互、本地数据的存储、断网功能的使用等,经常该部分也需要与网络切换部分协同进行。通常来说,(1)断网情况下请求一个非本地数据的页面需要设定一定的时间等待上限,及时提示网络异常以及提示重试;(2)断网情况下请求一个部分本地数据的页面需要观察本地数据的部分是否加载显示正常,待请求的部分是否符合交互给的缺省样式一致;(3)断网情况下请求一个完全本地数据的页面是否显示正常。这里还需考虑本地数据存储的情况,有些需要联网后上报服务器的数据本地是否正确存储,联网后这些数据能否正常上报。
无网状态测试建议按照页面划分进行,针对每个页面单独测试无网状态的显示,页面间跳转的显示,页面内功能的点击和显示,同时关注无网到有网时的页面恢复显示状态、数据上报情况是否正常。

3.网络切换测试

这部分主要是进行几个不同网络场景的切换,包括wifi-2G/3G/4G、wifi-无网、2G/3G/4G-wifi、2G/3G/4G-无网、无网-2G/3G/4G、无网-wifi等。主要关注页面的显示与交互,尤其是弱网到wifi,wifi到弱网的情况,是否会有页面的crash以及显示的错乱、session是否一致、请求堆积处理等。

4.用户体验关注

弱网测试的目的就是尽可能保证用户体验,关注的关键点包括:
(1)页面响应时间是否可接受,关注包括热启动、冷启动时间,页面切换,前后台切换,首字时间,首屏时间等。
(2)页面呈现是否完整一致
(3)超时文案是否符合定义,异常信息是否显示正常。
(4)是否会有超时重连
(5)安全角度:是否会发生dns劫持、登录ip更换频繁、单点登录异常等。
(6)大流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作。