APP网络性能测试白皮书(二)

简介: 资源类性能中,磁盘、内存、CPU是本地资源,但是除了这些之外,还有一个特别的存在——网络,之所以特别是因为它是外部资源。对于移动互联网来说,优化网络的性能非常重要。而我们优化网络性能无非看三个问题:业务成功率、业务网络时延、业务宽带成本。

网络测试要点



各个网络下功能测试


各个网络下的功能测试建议将整体的功能测试用例在弱网环境下进行一轮测试,相同模块下的功能可以分多个网络条件进行测试。


这部分发现的问题可能会有:页面图片在弱网环境下加载不出来(图片加载逻辑需优化)、需要模版的页面版式结构混乱(模版文件在弱网环境的加载需优化)、页面响应时间较长没有任何显示(页面显示逻辑待优化、重试机制加入)等。


无网测试


无网状态测试则是在切断网络的情况下进行的测试,主要关注页面的显示与交互、本地数据的存储、断网功能的使用等。通常来说需要注意下面几点:


1、断网情况下请求一个非本地数据的页面需要设定一定的时间等待上限,及时提示网络异常以及提示重试;


2、断网情况下请求一个部分本地数据的页面需要观察本地数据的部分是否加载显示正常,待请求的部分是否符合交互给的缺省样式;


3、断网情况下请求一个完全本地数据的页面是否显示正常。这里还需考虑本地数据存储的情况,有些需要联网后上报服务器的数据本地是否正确存储,联网后这些数据能否正常上报。


无网状态测试建议按照页面划分进行,针对每个页面单独测试无网状态的显示,页面间跳转的显示,页面内功能的点击和显示,同时关注无网到有网时的页面恢复显示状态、数据上报情况是否正常。


网络切换测试


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


用户体验关注


弱网测试的目的就是尽可能保证用户体验,关注的关键点包括:

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


弱网测试


什么样的网络属于弱网

低于2G速率的时候都属于弱网,3G也可划分为弱网,一般Wi-Fi不划入弱网测试范畴。


如何进行弱网测试

  1. SIM卡的网络切换(手机-设置-移动网络设置-网络类型选择,3G、4G卡都可以设置关闭3G/4G,只走2G网络)
  2. 具体弱网场景测试,常见场景包括:地铁/巴士、电梯、楼梯间、停车场
  3. 使用虚拟机模拟网络速度,如用树莓派搭建的弱网测试仪
  4. 使用软件进行网络代理,模拟不同的网络带宽、延时率、丢包率


弱网模拟常用工具

方法一:利用抓包工具charles进行弱网设置,适用PC端和移动端(IOS/Android)


image.png

image.png


配置参数解析:

bandwidth —— 带宽,即上行、下行数据传输速度。

utilisation —— 带宽可用率,大部分modern是100%。

round-trip latency —— 第一个请求的时延,单位是ms。

MTU —— 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。

Releability —— 指连接的可靠性。这里指的是10kb的可靠率,用于模拟网络不稳定。

Stability —— 连接稳定性,也会影响带宽可用性,用于模拟移动网络,移动网络连接一般不可靠。


具体网络设置参考:

image.png


方法二:使用chrome浏览器的开发者工具,适用web端 打开开发者工具,打开Network,点击No throttling下拉框

image.png


方法三:使用手机自带的限速功能,只适用iOS设备 打开iOS设备,设置->开发者->NETWORK LINK CONDITIONER,系统已经内置常见网络配置,也可以增加自定义配置。(我们集团内部有个叫网络大师的应用可以在iOS和Android手机上直接通过VPN设置网络状态)

image.png



有兴趣的同学也可以自己通过树莓派利用Facebook的 ATC搭建弱网模拟环境,后面有时间我再写一篇关于这部分的文章。

相关文章
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
799 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
测试技术
Fast网络速度测试工具
Fast是由Netflix提供的网络速度测试工具,可快速测量用户的下载、上传速度及延迟。其全球可用、无广告干扰,并支持多种设备。测试自动进行,结果以Mbps显示。此外,用户可通过“Show more info”查看上传速度和延迟(含缓冲膨胀)。Fast以其简单快捷的特点,帮助用户了解网络性能并解决潜在问题,是评估网速的理想选择。
1775 0
Fast网络速度测试工具
|
SQL 安全 测试技术
网络安全的屏障与钥匙:漏洞防护与加密技术解析软件测试的艺术:探索性测试的力量
【8月更文挑战第27天】在数字时代的海洋中,网络安全是保护我们数据资产的灯塔和堤坝。本文将深入浅出地探讨网络安全领域的关键要素——安全漏洞、加密技术以及不可或缺的安全意识。通过实际案例分析,我们将了解如何识别和修补潜在的安全漏洞,掌握现代加密技术的工作原理,并培养起一道坚固的安全防线。文章旨在为读者提供实用的知识和技能,以便在日益复杂的网络环境中保持警惕,确保个人及组织信息的安全。
|
机器学习/深度学习
神经网络与深度学习---验证集(测试集)准确率高于训练集准确率的原因
本文分析了神经网络中验证集(测试集)准确率高于训练集准确率的四个可能原因,包括数据集大小和分布不均、模型正则化过度、批处理后准确率计算时机不同,以及训练集预处理过度导致分布变化。
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
1269 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
282 1
|
数据采集 网络协议 算法
移动端弱网优化专题(十四):携程APP移动网络优化实践(弱网识别篇)
本文从方案设计、代码开发到技术落地,详尽的分享了携程在移动端弱网识别方面的实践经验,如果你也有类似需求,这篇文章会是一个不错的实操指南。
514 1
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
2133 1
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
人工智能 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS

热门文章

最新文章