弱网测试主要就是对带宽、丢包、延时等进行模拟弱网环境,属于健壮性测试的内容。目前移动端用户所处的网络环境并不是为彻底流畅的WiFi环境,而且在WiFi环境下也会有网络波动。在实时性要求很是高的场景,容易伤害用户体验,所以,为了不用户体验不友好形成用户流失,弱网测试显得尤其重要。而生活中看视频经常碰到的卡顿,也能够经过弱网测试来模拟验证,找到合适的码率标准值设置从而提升用户体验。html
总结如上图,弱网测试可分为弱网功能测试、网络切换测试、断网测试等,而且在不一样网络环境测试的同时密切关注用户体验。网络
1)弱网下功能测试编辑器
关注页面数据加载时间即接口发出请求到数据返回响应时间,是否有友好加载提示如loading动画or进度条,在客户端设置超时时间内响应正常展现页面数据及使用功能,超出超时时间后显示异常友好提示即超时机制,以及根据场景判断超时后是否进行重连请求机制等。工具
2)进行网络切换post
操做时,关注网络切换中正好处于数据加载状态,是否会致使App crash or ANR。测试
3)断网状态下动画
页面展现考虑三种加载状况,一初始化从零加载应显示异常提示页面,二页面加载部分数据后断网,已加载数据是否正常展现,未加载部分是否与异常提示UI设计保持一致,三已加载全部数据后断网从新刷新页面是正常展现仍是覆盖已有数据(取决开发加载策略)。在已有本地数据存储的状况下,查看断网重连后可否正常使用功能以及传参数据正确性。阿里云
在测试过程当中,除了在实际场景如电梯、地下车库、地铁等环境进行模拟测试外,还能够借助第三方工具来进行网络模拟测试,如上截图。由于工做电脑限制,我最经常使用工具就是Charles和iOS自带开发者工具。设计
1)Charlescode
在Charles的安装及使用请参考如下连接juejin.im/post/5c0a43…
Proxy-Throttling勾选Enable Throttling启用网速模拟,可选择内置的一些带宽设置或自定义设置,保存后能够点击主界面的小🐢按钮开启/禁用慢网速功能,配置含义:Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(字节)
不一样网络测试环境设置参考以下图:
2)Fiddler
fiddler的安装及使用请参考 www.cnblogs.com/yyhh/p/5140… (转)
Rules-customer rules打开自定义脚本编辑器,找到以下图代码,更改带宽延迟设置
设置完成后,Performance-Simulate Modem Speeds,完成弱网模拟功能的打开
3)iOS自带开发者工具Network Link Conditioner
由于是苹果自带的网速模拟工具,须要在Xcode环境下激活手机设置中才会显示开发者选项,Xcode安装使用请参考www.jianshu.com/p/94f722406… (转)
4)Facebook开源工具ATC
要使用ATC,须要在Linux环境下建立热点,这里就不作详细概述,请参考 www.jianshu.com/p/fb4824fd5…(转)
了解了弱网测试的要点和工具后,就能够进行视频的卡顿测试。网络环境的不稳定或者是宽带自身的网速限制,经常致使用户观看视频不流畅,各类卡顿,给用户极差的体验。所以对于播放卡顿的定义能够概述为“在播放过程当中频繁出现音画中止,致使用户等待的现象”。在年糕妈妈App上表现为频繁出现音画暂停,并出现转圈圈画面。
要了解卡顿产生的缘由,就须要寻找切入点,经过技术小组的研究及流程梳理,决定从数据流这个点来切入。影响卡顿的两个变量为视频自己的码率和用户网络的带宽。经过两个变量作了卡顿模拟,来验证两个变量对播放卡顿的影响,而且经过和网络推荐码率做对比分析,来肯定咱们的码率值是否合理。
根据推荐码率与阿里云转码的实际码率,结合不一样网络环境设置推荐,定档下行带宽测试范围。下图仅为高清分辨率视频的测试表格设计
根据以上设计表格,经过数据埋点获得不一样清晰度下不一样带宽不一样平台下播放卡顿次数统计,最终得出结论,推出视频卡顿的解决方案,在此就不作详述了。