前言

上一篇:Sonic 开源云真机测试平台开源啦! - 设计思路与背景(一)

在开始第二篇之前,统一回答大家几个问题

更多其他问题,大家可以群里提问,马上进入正题

v1.0 亮点功能

设备中心

用于展示与筛选当前可用设备,评估使用率与投入产出
连接成功的设备也可以在这个页面找到

远控(投屏 + 触控 + 物理按键)

远控对比其他云真机平台,我做了很多简化(远程 adb 和 STF 其他小功能比较少用到,后续会考虑加入),投屏和触控(点击、长按、拖拽)是基于 minicap 和 minitouch 实现,因为安卓 10 开始触控文件权限的原因,所以安卓 10 以上用原生 adb 进行控制,以下则继续使用 minitouch(minitouch 的话可以做到长按再拖拽松开,原生 adb 则不可以)。
有小伙伴问我为什么不使用 scrcpy,个人感觉 scrcpy 会对手机有一部分性能折损,加大耗电量,当然了,后面也会考虑做进来,让用户自己选择远控方式。

控件元素树获取


这个功能大家并不陌生,桌面版 AppiumDesktop 和其他优秀的云真机平台都有这个功能。我在这边为了搭配 UI 自动化,在选择控件后可以在右侧快速创建控件,可以供后续 UI 自动化使用,也可以快速获取控件快照,保存为图片控件,可以供后续图像识别使用。
除了控件相关,我对控件树还做了筛选处理,可以在控件树上方的输入框输入 resource-id 或者 class 模糊匹配
其他小信息也一并展示,如当前 Activity、当前包含 WebView、页面截图等待

执行测试、调试与图像识别

远控时,可以对 UI 自动化用例进行调试,运行过程一览无遗,实时反馈数据到前端页面。当用例加入套件后,可以一键下发多台设备运行,然后查看报告。
图中还演示了图像的特征匹配识别。当前 Agent 包含的图像识别功能有

  1. 图片相似度对比,超过用户断言临界值会报错
  2. 通过图片定位元素,利用 AKAZE 算法、SIFT 算法和模板匹配算法
  3. 识别图中的文字进行断言,通过 tesseract 识别文字,可以检测文字被遮挡的兼容性问题 

步骤拖拽排序,随心所欲

用户可以自定义步骤执行失败时,是忽略还是告警还是中断测试
做过 UI 自动化的都知道,维护一个用例的难度往往是压垮耐心的最后一根稻草。因此我设计了拖拽排序步骤,并且将步骤、控件、全局参数、公共步骤独立维护,极力降低维护成本

测试概况与测试报告展示




项目概况统计了当周设备运行时长 top5 和用例 top5,还有综合运行情况(当然还需要展示更多数据,可以提需求~)
测试报告将每个用例分配的设备运行状态分组展示,确保完整展示测试过程的日志、性能数据、截图、测试录像等信息
通过图表可视化评估 app 质量

Quatrz 定时任务

持久化定时任务,无侵入式实现分布式定时任务。
机器人发送通知,支持钉钉、飞书(即将开发)、企业微信(即将开发)

至此,主要功能介绍完毕了

下一篇,讲述平台后续规划与投入产出

欢迎大家进群讨论,但是记得小小支持,star 一下哦,这将是我前进的动力

用户社区
联系我们


↙↙↙阅读原文可查看相关链接,并与作者交流