当前位置: 首页 > news >正文

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

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"
@staticmethoddef 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

http://www.dtcms.com/a/285294.html

相关文章:

  • Netty入门学习
  • java-字符串和集合
  • (自用)补充说明2
  • 《python语言程序设计》2018版第8章8题编写函数实现二进制转十进制(字符串变整数)!!整数没法进行下标
  • 基于MATLAB的极限学习机ELM的数据回归预测方法应用
  • 用python可视化分析二次元经济的爆发
  • python网络爬虫(第一步:网络爬虫库、robots.txt规则(防止犯法)、查看获取网页源代码)
  • 2025年6月GESP(C++一级):假期阅读
  • Baumer工业相机堡盟工业相机如何通过YoloV8模型实现人物识别(C#)
  • 2025年6月GESP(C++一级):值日
  • VOTE:基于轨迹集成投票的视觉-语言-动作模型优化
  • 掌握工程化固件烧录,开启你的技术进阶之路-STM32系列
  • C#将类属性保存到Ini文件方法(利用拓展方法,反射方式获取到分组名和属性名称属性值)
  • vue-cli 模式下安装 uni-ui
  • 2-Vue3应用介绍
  • STM32f103ZET6之ESP8266模块
  • AlpineLinux的内核优化
  • AI搜索+GEO时代的营销策略更迭学习笔记
  • 计算机的网络体系及协议模型介绍
  • 【Java】文件编辑器
  • ROS1/Linux——Launch文件使用
  • 【深度学习新浪潮】AI在finTech领域有哪些值得关注的进展?
  • STM32 IAR 生成工程后配置
  • CSP-S模拟赛三(仍然是难度远超CSP-S)
  • 【Java源码阅读系列55】深度解读Java Method 类源码
  • 78、【OS】【Nuttx】【启动】caller-saved 和 callee-saved 示例:栈指针和帧指针(下)
  • 股票行情接口api,板块、概念接口,股票主力资金流接口,板块概念资金流接口
  • 暑期自学嵌入式——Day05(C语言阶段)
  • 1-创建Vue3项目
  • Linux系统编程——进程间通信