客户端自动化测试在网易云音乐的实践与落地
发布网友
发布时间:2024-08-20 16:49
我来回答
共1个回答
热心网友
时间:2024-09-01 21:35
本文作者:[吕雨强]
一、背景
时间线回到2021年,云音乐版本双周迭代,集成测试阶段耗时两天,其中人工回归用例占据大部分时间。当前UI自动化方案存在诸多问题,效率和质量有待提高,而业务侧期望降低上线周期。
云音乐新版本质量稳定性不佳,前一个版本崩溃率达标,下个版本可能迅速反弹。同时存在以下痛点:
二、Saturn平台简介
基于上述背景,2021年下半年云音乐大前端QA与公技团队共同搭建Saturn平台。Saturn的核心功能主要包括:
接下来,本文将重点介绍Saturn平台的设计思路、技术演进、专项和落地成果。
三、Saturn平台架构
Saturn平台主要分为以下架构:
(此处应插入架构图)
四、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遍历节点、获取节点信息。
录制时
回放时
4.3 Saturn平台iOS内置SDK工作流程
录制时
回放时
4.4 Saturn自动化用例平台存储
用例以json表达式,保存自动化的执行环境、需要mock的接口、账号密码、自动化步骤等信息。
4.5 设备机房
五、在云音乐中的应用UI自动化测试
可定时触发、手动触发,与能效平台打通CI触发。
执行情况
算上失败重跑2次,一小时单台设备平均能执行30条以上自动化用例。
对用例执行情况,可查看截图和视频。
兼容性测试
对需要测试兼容性的用例,可选择兼容性测试,自动从每一个系统中选出设备进行测试。
稳定性测试
双端均可定时触发、手动触发,底层采用开源项目Fastbot。
启动性能自动化
通过定时打包、定时启动自动化,获取平台埋点的启动数据,可视化展示启动数据。跟踪启动数据,防止启动劣化。
RN自动化
图像对比RN页面
六、云音乐客户端自动化效果
七、参考资料
[1] github.com/appium/WebDr...
[2] github.com/alipay/SoloP...
[3] github.com/openatx/atxs...
[4] github.com/bytedance/Fa...
[5] github.com/bytedance/Fa...
[6] github.com/alibaba/tide...
最后
更多岗位,可进入网易招聘官网查看 hr.163.com/