OpenHarmony 一种应用界面UI自动化测试方法

103 阅读3分钟

前言

随着 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 目录执行全部用例:

观察设备是否正常显示测试页面,显示了蓝色的文字:

DD一下:欢迎大家关注公众号<程序猿百晓生>,可以了解到以下知识点。
`欢迎大家关注公众号<程序猿百晓生>,可以了解到以下知识点。`
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案) 
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......

检查测试结果:

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 测试报告