客户端自动化测试在网易云音乐的实践与落地

本文介绍了Saturn平台,一款帮助软件测试提高效率的工具,包括用例录制、管理、执行、设备调度等功能。特别关注了云音乐项目中的应用,如UI自动化测试、性能测试和稳定性提升,显著提高了测试覆盖率和执行成功率,降低了学习成本和问题定位时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读2.5k次,点赞85次,收藏11次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502云音乐目前版本双周迭代,在集成测试阶段会花费两天时间,在这两天时间里面有相当部分时间是人工进行用例回归,而且目前 UI 自动化现有方案会存在较多问题,导致目前这块的效率和质量均不太理想,而对业务侧又希望能降低业务上线的周期。

目前云音乐每个新版本质量稳定性不是很理想,在前一个版本上崩溃率做到了质量基线,下个版本很可能就快速反弹。

同时伴随着的以下一些痛点:

  • 测试回归人工效率低,目前使用的 appium、smartAuto 等框架均有部分缺陷,主要集中在用例维护成本高、UI 检索稳定性保障难、新版本用例录入不及时、双端一致性难保障、问题回溯定位效率低下等;

  • 自动化测试对于用例和设备调度及管理基本靠人工进行;

  • 冒烟测试等工作没有对应的高效验收机制和服务能力,主要依赖线下沟通;

  • 自动化用例没有统一的调度管理平台,在 tc 用例平台执行用例时,无法精准筛选自动化用例执行,且每次执行结果保存也不直观。

二、Saturn 平台简介

基于上述背景,2021 年下半年云音乐大前端 QA 与公技团队共同搭建 Saturn 平台。Saturn 的核心功能主要包括:

  • 用例录制:手机端操作录制,录制过程记录控件信息、操作信息、埋点信息、截图等扩展信息;

  • 用例管理:录制的用例上传到 Saturn 后,进行维护、分类、放到各自模块以及执行集等;

  • 执行集:定义各自需要执行的用例的集合,方便用例快速执行与制定执行计划;

  • 设备调度:支持私有化部署、支持私有化调度、支持按测试类型调度、支持多 APP 之间调度、支持指定设备调度、支持随机分配设备等;

  • 用例执行:根据执行设置分配执行机,把用例分发到指定 provider 端,provider 根据下发消息调度 Athena/NETestWD 执行自动化;

  • 报告:报告汇总、执行步骤展示及执行截图、手动标记 check、失败原因归类、执行过程录屏与日志;

  • 设备管理:自有设备的上下线、自有设备的用途、自有设备的部署类别;

  • 各个专项,UI 自动化,RN 自动化,启动性能自动化,稳定性测试,覆盖安装等等

接下来,本文讲重点介绍 Saturn 平台设计思路、技术演进,专项,落地成果。

三、Saturn 平台架构

Saturn 平台主要分为

  1. 平台端:主要是用户交互、设备管理与调度;

  2. Android provider 端:部署在 mac 或者 pc 上用于 Android 手机的监控、与平台端交互、下发执行自动化任务;

  3. Athena APP:主要用于录制与回放自动化用例、上报用例、上报用例执行结果;

  4. Android 端内置 SDK:辅助 Athena 录制与回放自动化用例、准备用例执行环境(登录、mock、后台环境等);

  5. iOS provider 端:部署在 mac 上用于 iOS 设备监控、与平台端交互、下发执行自动化任务、维护 WDA、NETestWD 的稳定;

  6. NETestWD:用于启动被测应用、接收用例、上报自动化用例执行结果;

  7. WDA(WebDriverAgent):处理 iOS 端设备上的系统弹框;

  8. iOS 端内置 SDK:主要用于录制自动化用例、准备用例执行环境(登录、mock、后台环境等)、执行自动化用例;

如下面架构图所示:

四、Saturn 设计原理

4.1 Saturn 平台设备调度工作流程

设备调度工作流程用户执行用例,后台逻辑处理然后入库 history 表、发送 SystemHistory 消息入库 queue 表;SystemHistory 消息消费线程监听 queue 表中 SystemHistory 消息,获取消息后进行处理按照 Android/iOS 设备发送新的消息入库 queue 表;Android/iOS 消息消费线程监听 queue 表中 Android/iOS 消息,获取消息并锁定消息,之后检测可用设备,如果无空闲设备则释放消息,如果有空闲设备通过 websocket 下发消息并删除 queue 表中消息,provider 端接收到消息进行解析,执行自动化用例,执行完成后上报执行结果到平台,平台会更新用例执行结果并释放设备。

设备调度支持私有化部署、支持私有化调度、支持按测试类型调度、支持多 APP 之间调度、支持指定设备调度、支持随机分配设备等;

4.1.1 设备管理页面

图

4.2 Saturn 平台 Athena 工作流程

Athena 通过 adb 在录制时监听事件,回放时发送时间;通过 Accessibility 遍历节点、获取节点信息;

录制时

  • Athena 记录操作节点信息、操作信息、埋点信息;

回放时

  • Athena 通过内置 SDK 快速准备环境,免去大量前置步骤执行;

  • Athena 优先通过埋点信息确定目标节点,无埋点信息时通过使用多种查找方式遍历多次计算综合得分确定目标节点;

  • Athena 会自动处理系统弹框,防止弹框对自动化执行的影响。

4.3 Saturn 平台 iOS 内置 SDK 工作流程

录制时

  • 触摸、滚动事件的采集是通过 AOP 的方式进行采集信息,比如点击事件,通过拦截 UIControl 的 sendAction 方法和 UIView 的 addGestureRecognizer 方法,滚动时间通过 hook UISCrollViewDelegate 进行消息转发;

  • 键盘输入、断言事件的采集目前没有很自然的方式,所以都是通过一个交互工具来手动进行录制;

回放时

  • 回放的核心点是 UIAppliction 的 sendEvent 方法,sendEvent 方法是触摸事件分发的入口,回放时通过构造 UIEvent 再通过 sendEvent 方法进行事件分发;

  • 快速环境准备,免去大量前置步骤执行;

  • 执行时会优先使用埋点信息确定目标节点,无埋点信息时通过 xpath 定位的方式确定目标节点。

4.4 Saturn 自动化用例平台存储

用例以 json 表达式,保存自动化的执行环境,需要 mock 的接口, 账号密码, 自动化步骤等信息。

4.5 设备机房

五、在云音乐中的应用

UI 自动化测试

可定时触发,可以手动触发, 与能效平台打通能 CI 触发。

执行情况

算上失败重跑 2 次, 一小时单台设备平均是能执行 30 条以上自动化用例

对用例执行情况,可查看截图和视频

兼容性测试

对需要测试兼容性的用例,可选择兼容性测试,自动从每一个系统中选出设备进行测试

稳定性测试

双端都可定时触发,可以手动触发 ,底层采用开源项目 Fastbot

启动性能自动化

通过定时打包,定时启动自动化,获取平台埋点的启动数据,可视化展示启动数据。 跟踪启动数据,防止启动劣化。

RN 自动化

图像对比 RN 页面

六、云音乐客户端自动化效果

  • 有效降低学习成本:人人均可录制测试用例;

  • Android 端 P0 级用例覆盖率 72.95%,执行成功率 91.87%;

  • iOS 端 P0 级用例覆盖率 71.86%,执行成功率 91.33%;

  • 用例创建和维护效率,相比 Appium 和 Smartauto,分别提升了 9 倍和 3 倍;

  • 用例执行效率提升 1.5 倍以上;

  • 用例执行成功率提升 2 倍以上,稳定在 90%以上;

  • 问题定位效率从天级别缩短小时;

  • 迭代回归缩短 0.5 天;

  • 双端同一埋点自动化用例可以复用;

  • 用例易修改,位置变动可直接更新自动化用例的 json 数据;

  • 平台整体录制自动化用例两千条以上;

  • 执行自动化用例年均二十万次以上;

  • 发现功能问题和稳定性问题几十个;

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 786229024,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值