鸿蒙UI自动化测试框架Hypium的使用指南

发布于:2025-07-18 ⋅ 阅读:(14) ⋅ 点赞:(0)

1.环境准备

1.1 安装HDC

HDC是通过DevEco Studio安装的

DevEco Studio下载路径:下载中心 | 华为开发者联盟-HarmonyOS开发者官网,共建鸿蒙生态

安装DevEco Studio后,配置HDC环境变量:

# Harmony

HARMONY_SDK_HOME=/Applications/DevEcoStudio.app/Contents/sdk/default/openharmony

export HARMONY_SDK_HOME

export HARMONY_NDK_HOME=$HARMONY_SDK_HOME/native

export PATH=$PATH:$HARMONY_SDK_HOME/toolchains

PS:路径一般是默认的,路径确认方法:应用程序—>DevEco Studio—>显示包内容

1.2 安装hypium库

下载路径:下载hypium

下载文件如下:

解压后看到hypium-5.1.5.200.zip

再次解压hypium-5.1.5.200.zip,可以看到4个.tar.gz文件

进入hypium-5.1.5.200文件夹,执行:

pip3 install xdevice-5.1.5.200.tar.gz

pip3 install xdevice-devicetest-5.1.5.200.tar.gz

pip3 install xdevice-ohos-5.1.5.200.tar.gz

pip3 install hypium-5.1.5.200.tar.gz

1.3 安装调试工具Hypium插件

在Pycharm上安装DevEco Testing Hypium插件后,方便调试,找鸿蒙demo的元素

刚才下载下来的包中第一次解压后有一个文件:DevEco Testing Hypium件离线安装包

安装方法:打开pycharm,点击File -> Settings -> Plugin -> 齿轮图标 -> Install Plugin from Disk -> 选中“DevecoTesting-Hypium-5.1.5.200.zip”

 配置hdc路径:

安装完成后,在pycharm 的右边会有插件图标:

插上设备

 

选择设备,点击【确定】后,就可以操作设备了

2. demo元素的查找

点击“放大镜搜索”按钮,在操作元素,会在右边出现元素信息

3.录制脚本

点击“摄像机”按钮,进入录制状态,操作demo控件,会在右边的文件中自动生成脚本

4.自动化脚本编写

  • 创建driver
from hypium import *

driver=UiDriver.connect(device_sn="23E0223C13000090")

device_sn的获取:hdc list targets

 在工程中的封装:

HDC_PATH="/Applications/DevEcoStudio.app/Contents/sdk/default/openharmony/toolchains/hdc"
@staticmethod
    def get_ohos_devices() -> list:
        result = []
        ohos_lines = os.popen(HDC_PATH + " list targets")
        for l in ohos_lines:
            if len(l)>8:
                result.append(l[:-1])
        print("get_ohos_devices:主机上的ohos设备:{}".format(result))
        return result

PS:当没有设备的时候,鸿蒙的hdc会返回一个[Empty],会导致当设备为空时,传“[Empty]”给调用函数,所以用长度来控制

其他操作场景举例

driver = UiDriver.connect(device_sn=device_sn)
#关闭app
driver.stop_app("com.netease.rtcdemo")
#卸载app
driver.uninstall_app("com.netease.rtcdemo")
#等待
driver.wait(5)
#安装app
driver.install_app(app_path)
#启动app
driver.start_app("com.netease.rtcdemo")
#授权
driver.touch(BY.key('permission_dialog_allow_button'))
#查找到第一个输入框,并输入内容
channel_name=driver.find_all_components(BY.type("TextInput"),0)
driver.input_text(channel_name,"2025070701")
#点击
driver.touch(BY.text('Join'))
#按下返回键
driver.press_back()

还有其他一些比如滑动、拖拽等操作,直接进入到uidriver.py中查看

全面的了解这个插件可以查看官方文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/hypium-python-guidelines

PS:官网介绍的是创建一个完整结构的UI自动化测试架构,本篇文章的内容更适合在已有框架中兼容鸿蒙的场景

5.指令

获取设备deviceid:hdc list targets  (获得deviceid)

获取设备uuid:hdc shell bm get -u

安装app:hdc install app (有多个设备时用-t指定  hdc -t  deviceid install app)

卸载app:hdc uninstall app  (有多个设备时用-t指定  hdc -t  deviceid install app)

获取设备ip:hdc  shell ifconfig

查找包名:hdc shell bm dump -a | grep package name

hdc命令可以查看官网:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/hdc

鸿蒙用的包管理工具是bm,指令可见官网:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/bm-tool


网站公告

今日签到

点亮在社区的每一天
去签到