当前位置: 首页 > 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.lryc.cn/news/591329.html

相关文章:

  • springboot跨域问题 和 401
  • 解锁数据分析:从基础概念到核心指标的全面指南
  • 数据分析:从数据到决策的核心逻辑与实践指南
  • 电脑DLL错误修复dll微软运行库工具修复dll缺失找不到dll等问题,dll免费修复工具
  • Servlet概述
  • 基于arduino单片机汽车智能电子防碰撞装置设计
  • linux_线程同步
  • 一文掌握Harbor的配额管理和GC机制
  • 2025测绘程序设计国赛实战 | 泰森多边形算法C#实现
  • 华为云容器产品分析
  • tcp/udp调试工具
  • Python20 —— 二维数据的处理
  • 【C++类和对象解密】面向对象编程的核心概念(下)
  • Python 网络爬虫 —— 代理服务器
  • HTML前端性能优化完整指南
  • LeetCode 234:回文链表
  • Day04_C语言网络编程20250716_sql语言大全
  • Ollama使用指南-更改默认安装路径和Model路径(安装到非C盘)
  • 【计算机网络】第四章:网络层(上)
  • 【Linux-云原生-笔记】LVS(Linux virual server)相关
  • 云原生环境下的安全控制框架设计
  • MongoDB社区版安装(windows)
  • mongodb 入门级别操作
  • 如何清除 npm 缓存
  • Redis3:Redis数据结构与命令全解析
  • MongoDB 安装步骤详解
  • AI交互的初期魅力与后期维护挑战
  • RISC-V和ARM有何区别?
  • npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1
  • Flutter状态管理篇之ChangeNotifier(一)