一、 技术选型标准
- 适用对象
以平台类App作为测试主体,涉及Native、RN、Flutter、H5等多种容器载体、并包含音频、视频、图片、文字、交互动画等多种表现形式。
- 平台框架
综合考虑技术选型的通用性、可维护性及前期学习成本。
1) 前端框架及语言【VUE+TypeScript】
2) 后端框架及语言【SpringBoot+Java】
3) 自动化脚本及辅助工具【Appium+Python】
4) iOS助手【WDA+ObjectC】
5) Android助手【Appium+Java/Kotlin】
- 设备管理
软件:采用Master-Slave分布式架构设计,以Agent的形式对设备进行组管理,并接入到Server进行水平扩展,设备管理可支持Android、Harmony和iOS系统的设备接入,可同时控制总数在150-200台的设备。
硬件:由于移动设备管理涉及电源、散热及设备连通性。除商用私有化部署方案提供机柜机架等配套硬件外,除sonic外的开源项目均无搭配的参考硬件支持。在最新版本的sonic中已将设备硬件纳入软件设计实现中。官方支持的移动设备管理,与自行购买组装【机柜+风扇+程控hub+工控机】的方案相比,兼容性及后续可维护性更高。
- 应用管理
我司现有的应用安装包构建方式,分为ici集成构建与本地打包构建两种,故云测平台需支持本地上传安装包【本地打包】与远程上传安装包【ici集成构建】两种方式。
- 远程控制
作为云真机的核心,在手机接入云测平台后,通过网页控制台的方式提供云真机服务,包括设备投屏、操作、调试、抓包、截图、录屏等各种功能,对标使用真实手机的体验。
- 性能监控
通过调用系统api及使用传感器,非侵入式采集系统的各种性能指标,包括但不限于【CPU、内存、网络、功耗、温度、电量、FPS、卡顿等】,供作为应用包的版本性能基线及厂商预置渠道上架评测使用。
- 技术支持
活跃的社区及稳定的平台维护更新,及功能升级。可同步更新社区开源的新功能及问题修复。后期可考虑作为commiter贡献代码,提升对外的技术影响力。
- UI自动化
原生支持Appium的UI自动化能力,可扩展其他引擎及语言脚本的支持。
二、竞品分析
从商用及开源产品中,选择有代表性的头部产品从适用对象、平台框架、设备管理、应用管理、远程控制、性能监控、技术支持及UI自动化八大维度进行对比打分。根据上述技术选型标准,综合评估,最终选择sonic作为公司云测试服务的技术底座,进行后续的功能迭代及适配性改造升级。
三、评估数据
略