视频弱网测试及常用模拟工具

5,465 阅读4分钟

1.弱网测试背景

弱网测试主要就是对带宽、丢包、延时等进行模拟弱网环境,属于健壮性测试的内容。目前移动端用户所处的网络环境并非为完全流畅的WiFi环境,并且在WiFi环境下也会有网络波动。在实时性要求非常高的场景,容易伤害用户体验,因此,为了避免用户体验不友好造成用户流失,弱网测试显得尤为重要。而生活中看视频常常碰到的卡顿,也可以通过弱网测试来模拟验证,找到合适的码率标准值设置从而提高用户体验。

2.弱网测试要点


总结如上图,弱网测试可分为弱网功能测试、网络切换测试、断网测试等,并且在不同网络环境测试的同时密切关注用户体验。

1)弱网下功能测试

关注页面数据加载时间即接口发出请求到数据返回响应时间,是否有友好加载提示如loading动画or进度条,在客户端设置超时时间内响应正常展示页面数据及使用功能,超出超时时间后显示异常友好提示即超时机制,以及根据场景判断超时后是否进行重连请求机制等。

2)进行网络切换

操作时,关注网络切换中正好处于数据加载状态,是否会导致App crash or ANR。

3)断网状态下

页面展示考虑三种加载情况,一初始化从零加载应显示异常提示页面,二页面加载部分数据后断网,已加载数据是否正常展示,未加载部分是否与异常提示UI设计保持一致,三已加载所有数据后断网重新刷新页面是正常展示还是覆盖已有数据(取决开发加载策略)。在已有本地数据存储的情况下,查看断网重连后能否正常使用功能以及传参数据正确性。

3.常用模拟弱网测试工具


在测试过程中,除了在实际场景如电梯、地下车库、地铁等环境进行模拟测试外,还可以借助第三方工具来进行网络模拟测试,如上截图。因为工作电脑限制,我最常用工具就是Charles和iOS自带开发者工具。

1)Charles

在Charles的安装及使用请参考以下链接juejin.cn/post/684490…


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…(转)

4.视频卡顿弱网测试思路

了解了弱网测试的要点和工具后,就可以进行视频的卡顿测试。网络环境的不稳定或者是宽带自身的网速限制,常常导致用户观看视频不流畅,各种卡顿,给用户极差的体验。因此对于播放卡顿的定义可以概述为“在播放过程中频繁出现音画停止,导致用户等待的现象”。在年糕妈妈App上表现为频繁出现音画暂停,并出现转圈圈画面。

要了解卡顿产生的原因,就需要寻找切入点,通过技术小组的研究及流程梳理,决定从数据流这个点来切入。影响卡顿的两个变量为视频本身的码率和用户网络的带宽。通过两个变量做了卡顿模拟,来验证两个变量对播放卡顿的影响,并且通过和网络推荐码率作对比分析,来确定我们的码率值是否合理。

  • 码率变量
    第一张图为推荐码率,第二张图为阿里云转码后的码率。


  • 带宽变量

根据推荐码率与阿里云转码的实际码率,结合不同网络环境设置推荐,定档下行带宽测试范围。下图仅为高清分辨率视频的测试表格设计


5.模拟结论

根据以上设计表格,通过数据埋点得到不同清晰度下不同带宽不同平台下播放卡顿次数统计,最终得出结论,推出视频卡顿的解决方案,在此就不做详述了。