开源测试工具 Sonic 开源云真机测试平台开源啦! - 功能介绍与演示(二)

Eason for Sonic云真机系列 · 2021年10月21日 · 最后由 Eason 回复于 2022年02月12日 · 14360 次阅读

前言

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

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

  • Sonic 会走商业化吗?怎么收费?
    回答:永久免费。官网就有明示

  • 目前集群部署的配置要求比较高,有其他方式部署吗?
    回答:有。考虑到部分 tester 只是用作测试、学习,特此推出了 Sonic 单机版。

    1. 以前部署过的先清空数据库
    2. 随便找个目录,新建 docker-compose.yml 文件
    3. 复制好 这个项目 的 docker-compose.yml 的内容,并修改 mysql、redis、mq 相关信息
    4. docker-compose pull
    5. docker-compose up -d
    6. 完成
更多其他问题,大家可以群里提问,马上进入正题

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 一下哦,这将是我前进的动力

用户社区
联系我们

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 21 条回复 时间 点赞

@chenhengjie123 申请加精😆

Eason 回复

开源工具平台的系列文章,默认只加精第一个哈。你可以在第一个头部加上其他后续文章的链接成为一个合集。
后面有干货更足的解析文章,再加精。

Eason #20 · 2021年10月21日 Author
陈恒捷 回复

好的

大佬大佬

Eason #17 · 2021年10月21日 Author
zcc_doc 回复

😆

这个是平台提供真机还是需要自己去接入真机

Eason #15 · 2021年10月25日 Author

自己接入

用 minicap 这个高版本就不行了,尽管有编译的 android30 或者 31,但基本没有用,小米等收集,就用不了。所以还是得改。目前看了下项目,还是基于 stf 的方式。

Eason #10 · 2021年11月10日 Author
chenyouan 回复

你没看我最新分支,开始合并 scrcpy 的投屏方式了,到时候两种方案用户选

Eason 回复

👍,到时好了,说下~

Eason #11 · 2021年11月11日 Author
chenyouan 回复

嗯嗯,但是估计跟 ios 版本一起发,所以可能需要一个月左右,你可以加群体验 beta 版

在哪可以部署,或者看到对应的平台?

tangoliver 回复

自己部署呀

优秀啊~

剪烛 回复

感谢支持

牛逼的大佬👍

kitty 回复

客气客气

牛逼啊

@Eason 请问可不可以列一下这个工具的系统配置要求不?目前我部署 docker 时提示我版本过低,不好操作

回复内容未通过审核,暂不显示
Suson 回复

后面会展示的,稍等下吧

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册