OpenHarmony开发实战: 一种应用界面UI自动化测试方法

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ## 前言: 随着 OpenHarmony 版本更新,应用生态繁荣,如何对应用界面进行自动化测试成为一个迫切的问题。一般情况,对应用的界面测试都是通过人工进行,效率低,误判率高,本文将介绍一种通过图片对比进行 UI 测试的方法,实现 UI 测试自动化。 设计思路:通过测试工程在基线版本上执行,截屏并保存图片,然后在被测版本上执行并截屏,将基线图片和测试图片进行对比。 ## 1 需求 比如,我们要实现一条 UI 的测试用例,检查一个按钮是否被正确地绘制: ## 2 实现 ### 2.1 使用 DevEco 创建测试工程 在 testability 目录下创建页面,命名规则,用例编号除数字外,相同的用例在 pages 下创建一个同名子目录,每个编号的用例创建一个 ets 文件,文件名采用大驼峰如下: ### 2.2 创建测试用例目和文件 在 test 目录下创建用例目录,目录名称和 2.1 中的页面相同并在后面加 Test,用例文件和页面 ets 文件相同,后缀多了.test,如下图: ### 2.3 编写页面代码 按用例要求编写页面,创建文本组件,并设置颜色为 Blue。 结构名称和文件名相同,组件需要设置 id 的,使用本文件名加"_001"按递增使用,避免和别的文件中的 id 重名。 ### 2.4 编写用例代码 修改类名,注释,测试套名称,用例名称,和测试用例文件及用例文档中对应,修改调用的页面文件路由,和页面路径对应: ### 2.5 添加页面路由配置 注意:这里的页面是写在 ohosTest 模块下,不要写到 main 模块里。 ## 3 编译运行 ### 3.1 编译 因为工程使用了截屏接口,需要系统权限,在 SDK 的 sdk\12\toolchains\lib\UnsgnedReleasedProfileTemplate.json 文件中修改应用级别:"apl":"system_core", "app-feature":"hos_system_app"。 在 IDE 的 file -> Project Structure 中自动签名: Build-> Rebuild 编译 hap。 ### 3.2 执行 右键 xxxxx.test.ets 文件执行用例,或右键 test 目录执行全部用例: 观察设备是否正常显示测试页面,显示了蓝色的文字: 检查测试结果: ### 3.3 获取截屏图片 打开截屏图片看是否显示为正确的蓝色文字。 ## 4 对比图片 使用 uicompare_tools 目录下的 python 对比工具脚本。 使用对比脚本前需要安装 python 环境,安装依赖包:需安装三个包:openpyxl、numpy、pillow。 hdc 配置到系统环境变量。 ### 4.1 将编译好的测试 HAP 复制到 对比工具的 hap 目录下 ### 4.2 在对比工具 excel 表格中添加用例 excel 文件名和 hap 名必须相同,一个 excel 对应一个 hap。 ### 4.3 生成基线图片 ### 4.4 对比测试 指定基线图片目录和上中路径一致 测试显示用例执行通过: ### 4.5 测试报告 ## 5 总结 本测试方法全套工程及样例代码已上传到集成测试仓:UI 对比测试。 大家可以根据需要下载使用 |

最后

小编在之前的鸿蒙系统扫盲中,有很多朋友给我留言,不同的角度的问了一些问题,我明显感觉到一点,那就是许多人参与鸿蒙开发,但是又不知道从哪里下手,因为资料太多,太杂,教授的人也多,无从选择。有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。

为了确保高效学习,建议规划清晰的学习路线,涵盖以下关键阶段:

希望这一份鸿蒙学习资料能够给大家带来帮助~


鸿蒙(HarmonyOS NEXT)最新学习路线

该路线图包含基础技能、就业必备技能、多媒体技术、六大电商APP、进阶高级技能、实战就业级设备开发,不仅补充了华为官网未涉及的解决方案

路线图适合人群:

IT开发人员: 想要拓展职业边界
零基础小白: 鸿蒙爱好者,希望从0到1学习,增加一项技能。
**技术提升/进阶跳槽:**发展瓶颈期,提升职场竞争力,快速掌握鸿蒙技术

2.视频学习资料+学习PDF文档

(鸿蒙语法ArkTS、TypeScript、ArkUI教程......)

纯血版鸿蒙全套学习资料(面试、文档、全套视频等)

鸿蒙APP开发必备

​​

总结

参与鸿蒙开发,你要先认清适合你的方向,如果是想从事鸿蒙应用开发方向的话,可以参考本文的学习路径,简单来说就是:为了确保高效学习,建议规划清晰的学习路线

相关推荐
GISer_Jing33 分钟前
WebGL跨端兼容实战:移动端适配全攻略
前端·aigc·webgl
迦南giser36 分钟前
前端性能——传输优化
前端
前端不太难40 分钟前
HarmonyOS PC 如何应对多输入交互?
状态模式·交互·harmonyos
小白_ysf41 分钟前
Vue 中常见的加密方法(对称、非对称、杂凑算法)
前端·vue.js·算法
人工智能训练7 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
会跑的葫芦怪8 小时前
若依Vue 项目多子路径配置
前端·javascript·vue.js
2601_949593658 小时前
基础入门 React Native 鸿蒙跨平台开发:模拟智能音响
react native·react.js·harmonyos
微露清风8 小时前
系统性学习Linux-第二讲-基础开发工具
linux·运维·学习
xiaoqi9228 小时前
React Native鸿蒙跨平台如何进行狗狗领养中心,实现基于唯一标识的事件透传方式是移动端列表开发的通用规范
javascript·react native·react.js·ecmascript·harmonyos
不会代码的小猴9 小时前
Linux环境编程第六天笔记--system-V IPC
linux·笔记