上一篇:Sonic 开源云真机测试平台开源啦! - 设计思路与背景(一)
Sonic 会走商业化吗?怎么收费?
回答:永久免费。官网就有明示
目前集群部署的配置要求比较高,有其他方式部署吗?
回答:有。考虑到部分 tester 只是用作测试、学习,特此推出了 Sonic 单机版。
用于展示与筛选当前可用设备,评估使用率与投入产出
连接成功的设备也可以在这个页面找到
远控对比其他云真机平台,我做了很多简化(远程 adb 和 STF 其他小功能比较少用到,后续会考虑加入),投屏和触控(点击、长按、拖拽)是基于 minicap 和 minitouch 实现,因为安卓 10 开始触控文件权限的原因,所以安卓 10 以上用原生 adb 进行控制,以下则继续使用 minitouch(minitouch 的话可以做到长按再拖拽松开,原生 adb 则不可以)。
有小伙伴问我为什么不使用 scrcpy,个人感觉 scrcpy 会对手机有一部分性能折损,加大耗电量,当然了,后面也会考虑做进来,让用户自己选择远控方式。
这个功能大家并不陌生,桌面版 AppiumDesktop 和其他优秀的云真机平台都有这个功能。我在这边为了搭配 UI 自动化,在选择控件后可以在右侧快速创建控件,可以供后续 UI 自动化使用,也可以快速获取控件快照,保存为图片控件,可以供后续图像识别使用。
除了控件相关,我对控件树还做了筛选处理,可以在控件树上方的输入框输入 resource-id 或者 class 模糊匹配
其他小信息也一并展示,如当前 Activity、当前包含 WebView、页面截图等待
远控时,可以对 UI 自动化用例进行调试,运行过程一览无遗,实时反馈数据到前端页面。当用例加入套件后,可以一键下发多台设备运行,然后查看报告。
图中还演示了图像的特征匹配识别。当前 Agent 包含的图像识别功能有
- 图片相似度对比,超过用户断言临界值会报错
- 通过图片定位元素,利用 AKAZE 算法、SIFT 算法和模板匹配算法
- 识别图中的文字进行断言,通过 tesseract 识别文字,可以检测文字被遮挡的兼容性问题
用户可以自定义步骤执行失败时,是忽略还是告警还是中断测试
做过 UI 自动化的都知道,维护一个用例的难度往往是压垮耐心的最后一根稻草。因此我设计了拖拽排序步骤,并且将步骤、控件、全局参数、公共步骤独立维护,极力降低维护成本
项目概况统计了当周设备运行时长 top5 和用例 top5,还有综合运行情况(当然还需要展示更多数据,可以提需求~)
测试报告将每个用例分配的设备运行状态分组展示,确保完整展示测试过程的日志、性能数据、截图、测试录像等信息
通过图表可视化评估 app 质量
持久化定时任务,无侵入式实现分布式定时任务。
机器人发送通知,支持钉钉、飞书(即将开发)、企业微信(即将开发)
欢迎大家进群讨论,但是记得小小支持,star 一下哦,这将是我前进的动力