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搭建弱网模拟环境,后面有时间我再写一篇关于这部分的文章。

相关文章
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
1390 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
数据采集 网络协议 算法
移动端弱网优化专题(十四):携程APP移动网络优化实践(弱网识别篇)
本文从方案设计、代码开发到技术落地,详尽的分享了携程在移动端弱网识别方面的实践经验,如果你也有类似需求,这篇文章会是一个不错的实操指南。
604 1
基于LangChain手工测试用例转App自动化测试生成工具
在传统App自动化测试中,测试工程师需手动将功能测试用例转化为自动化用例。市面上多数产品通过录制操作生成测试用例,但可维护性差。本文探讨了利用大模型直接生成自动化测试用例的可能性,介绍了如何使用LangChain将功能测试用例转换为App自动化测试用例,大幅节省人力与资源。通过封装App底层工具并与大模型结合,记录执行步骤并生成自动化测试代码,最终实现高效自动化的测试流程。
【Azure App Service】同一个App Service下创建多个测试站点的方式
【Azure App Service】同一个App Service下创建多个测试站点的方式
153 3
|
网络协议 Go Windows
【应用服务 App Service】App Service中抓取网络日志
【应用服务 App Service】App Service中抓取网络日志
274 2
|
网络协议 安全 前端开发
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
248 2
|
测试技术
一款功能完善的智能匹配1V1视频聊天App应该通过的测试CASE
文章列举了一系列针对1V1视频聊天App的测试用例,包括UI样式、权限请求、登录流程、匹配逻辑、消息处理、充值功能等多个方面的测试点,并标注了每个测试用例的执行状态,如通过(PASS)、失败(FAIL)或需要进一步处理(延期修改、待定、方案再定等)。
441 0
【Azure App Service】列举为App Service集成虚拟网络(VNET)操作时所需要的最小权限
【Azure App Service】列举为App Service集成虚拟网络(VNET)操作时所需要的最小权限
245 0
|
网络协议 Linux 网络安全
【Azure 应用服务】更便捷的方式抓取Azure App Service for Windows的网络包
【Azure 应用服务】更便捷的方式抓取Azure App Service for Windows的网络包
248 0
|
存储 Linux 网络安全
【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志
【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志
232 0