已开源!一款支持HarmonyOS NEXT系统的UI自动化框架hmdriver2发布

华为三折叠手机 Mate XT 发布,届时搭载着纯血鸿蒙系统 HarmonyOS NEXT 正式推送给用户使用。该系统不再兼容Android应用,这就意味着以前 Android 那套自动化测试框架都不能在该系统上运行。在此背景下,hmdriver2应运而生。

现在我郑重介绍一下hmdriver2:它是一款支持HarmonyOS NEXT系统的 UI 自动化框架,无侵入式,提供应用管理,UI 操作,元素定位等功能,轻量高效,上手简单,快速实现鸿蒙应用自动化测试需求。

经过一段时间的调研、编码、实践,就在今天,hmdriver2正式发布,代码已开源,欢迎提 PR 和 issue,动动你发财的手点点 Star ⭐️(你的 Star 是我迭代的动力)

https://github.com/codematrixer/hmdriver2

设计思想

  • 无需提前在手机端安装 testRunner APP(类似 atx app)

  • 在 PC 端编写 Python 脚本实现自动化

  • 对齐 Android uiautomator2的脚本编写姿势

  • 摒弃复杂依赖(几乎 0 依赖),即插即用

  • 操作响应快,低延时

  • 无侵入式

  • 易上手

  • 轻量高效

方案探索

在开发 hmdriver2 前,我对现有的鸿蒙自动化工具链进行了系列调研:

  • hdc:类似 android 系统的 adb 命令,提供设备信息查询,包管理,调试相关的命令

  • @ohos.UiTest:鸿蒙 sdk 的一部分,类似 android sdk 里的uiautomator,基于 Accessibility 服务,提供模拟 UI 操作的能力。但是需要用arkTS语言来写自动化 case,并且用例需要打包到被测 app 里面

  • hypium:鸿蒙官方的自动化框架,功能比较完善,可以基于 python 编写自动化 case

为啥不用 hypium?

分析鸿蒙官方自动化工具链,我们发现hypium已经具备了实现鸿蒙 Next 系统 UI 自动化能力,那直接用 hypium 就可行,为啥还要重复造轮子再搞一套?

深度体验 hypium 后发现,虽然它提供的能力已经比较全面了,但是还是有一些问题无法满足我的需求:

  1. 安装的依赖多,使用较繁杂,对用户不够友好,特别是小白用户

  2. 脚本执行效率较低,操作响应慢

  3. 未正式开源,无法共建,框架有 bug,等待官方修复时间确实太长。

于是决定自己写一套,说干就干!

1.0 版本

1.0 版本参考了 Android 端的 uiautomator2 自动化框架(这是一个很优秀的框架,不管是它的设计思路还是代码编写都值得借鉴),它的原理是在手机上运行了一个 http rpc 服务,将 android sdk 的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值