前言
随着 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 对比测试
指定基线图片目录和上中路径一致
测试显示用例执行通过: