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

鸿蒙Next Test Kit:一站式自动化测试框架详解

为鸿蒙应用质量保驾护航的利器

在鸿蒙生态蓬勃发展之际,确保应用质量成为开发者面临的重要挑战。鸿蒙Next Test Kit作为官方推出的一站式自动化测试解决方案,为开发者提供了从单元测试到UI自动化,再到性能与兼容性测试的完整工具链。

鸿蒙Test Kit概览

HarmonyOS自动化测试框架arkxtest,作为HarmonyOS工具集的重要组成部分,提供了HarmonyOS自动化脚本编写和运行的基础能力。该测试框架主要包含两大核心部分:单元测试框架(JsUnit) 和UI测试框架(UiTest),支持开发者针对应用接口进行单元测试,并且可基于UI操作进行UI自动化脚本的编写。

Test Kit的设计目标是提供一套完整、高效、易用的测试解决方案,覆盖鸿蒙应用测试的全生命周期,从开发阶段的功能验证到上架前的兼容性检查,都能找到相应的工具支持。

核心组件与功能特性

1. 单元测试框架(JsUnit)

单元测试框架是测试框架的基础底座,提供了最基本的用例识别、调度、执行及结果汇总的能力。其主要功能特性包括:

  • 基本流程控制:支持编写及异步执行基础用例,提供describe定义测试套,it定义单条用例的能力

  • 丰富的断言库:提供assertEqual、assertTrue、assertFalse等多种断言方法,判断用例实际期望值与预期值是否相符

  • Mock能力:支持函数级mock能力,对定义的函数进行mock后修改函数的行为,使其返回指定的值或者执行某种动作

  • 数据驱动:提供数据驱动能力,支持复用同一个测试脚本,使用不同输入数据驱动执行

  • 专项能力:支持测试套与用例筛选、随机执行、压力测试、超时设置、遇错即停模式等高级功能

单元测试框架通过beforeAllbeforeEachafterEachafterAll等钩子函数,提供了灵活的测试环境管理机制。

2. UI测试框架(UiTest)

UI测试框架主要对外提供了UiTest API供开发人员在对应测试场景调用,而其脚本的运行基础还是上面提到的单元测试框架。通过简洁易用的API提供查找和操作界面控件能力,支持用户开发基于界面操作的自动化测试脚本。

UiTest框架的核心能力包括:

  • 控件查找与操作:提供多种控件定位策略和模拟用户操作的能力

  • 异步交互处理:内置对应用异步加载的智能等待机制

  • 跨应用交互:支持应用间的跳转与交互测试

3. TestRunner测试执行器

@ohos.application.testRunner模块提供了框架测试的能力,包括准备单元测试环境、运行测试用例。如果您想实现自己的单元测试框架,必须继承这个类并覆盖它的所有方法。

TestRunner提供了两个核心方法:

  • onPrepare():为运行测试用例准备单元测试环境

  • onRun():运行测试用例

环境搭建与使用流程

环境要求

自动化脚本的编写主要基于DevEco Studio,并建议使用3.1.0.400之后的版本进行脚本编写。脚本执行需要PC连接HarmonyOS设备,如JAD等。

创建测试脚本

在DevEco Studio中新建测试脚本非常简单:

  1. 在工程目录下打开待测试模块下的ets文件

  2. 将光标置于代码中任意位置,单击右键 > Show Context Actions > Create Ohos Test或快捷键Alt+enter > Create Ohos Test创建测试类

编写单元测试脚本

单元测试脚本需要包含三个基本元素:

  1. 依赖导包,以便使用依赖的测试接口

  2. 测试代码编写,主要编写测试代码的相关逻辑,如接口调用等

  3. 断言接口调用,设置测试代码中的检查点,如无检查点,则不可认为一个完整的测试脚本

示例代码结构:

typescript

import { describe, it, expect } from '@ohos/hypium';describe('MathTest', () => {it('should add two numbers correctly', 0, () => {const result = 1 + 2;expect(result).assertEqual(3);});
});

编写UI测试脚本

UI测试脚本是在单元测试框架的基础上编写,主要增加了UI测试框架提供的接口调用。以下是一个简单的UI测试示例:

typescript

import { Driver, ON, Component, MatchPattern } from '@ohos.UiTest';
import { describe, it, expect } from '@ohos/hypium';describe('UITest', () => {it('should click button successfully', async () => {const driver = await Driver.create();await driver.delayMs(1000);const button = await driver.findComponent(ON.text('确认'));await button.click();// 验证点击后的效果const text = await driver.findComponent(ON.text('操作成功'));expect(await text.isVisible()).assertTrue();});
});

执行测试与查看结果

执行测试脚本可以直接在DevEco Studio中通过点击按钮执行,当前支持以下执行方式:

  • 测试包级别执行:执行测试包内的全部用例

  • 测试套级别执行:执行describe方法中定义的全部测试用例

  • 测试方法级别执行:执行指定it方法也就是单条测试用例

测试执行完毕后可直接在DevEco Studio中查看测试结果。

与其他测试工具集成

DevEco Testing专项测试

DevEco Testing是用于专项测试的工具,提供了UI Viewer(用于ArkUI控件树查看)、兼容性、稳定性、性能、功耗等测试能力,并提供了测试报告。例如,应用稳定性测试可以通过以下步骤进行:

  1. 选择应用稳定性测试/应用探索测试

  2. 选择连接的测试设备

  3. 选择被测应用(设备已安装或需要新安装的Hap包)

  4. 设置测试时长等参数

  5. 创建测试任务开始测试

  6. 测试完成后生成测试报告

兼容性测试服务

随着HarmonyOS NEXT的全面商用,操作系统的兼容性测试面临新的挑战与机遇。HarmonyOS支持多种设备间的无缝协同,这意味着开发者需要测试应用在不同设备上的表现,确保跨设备的兼容性和一致性。

云测试平台如优测云服务平台提供了HarmonyOS NEXT全系设备的远程测试能力,解决了开发者物理设备采购成本高的问题。这些平台通常提供AI辅助的自动化测试能力,能够将自然语言描述的问题自动转化为可执行的测试脚本。

常见问题与解决方案

单元测试常见问题

  • 用例中增加的打印日志在用例结果之后才打印:当被调用的异步接口多于一个时,建议将接口调用封装成Promise方式调用

  • 执行用例时报error:fail to start ability:检查测试包中是否包含TestRunner.abc文件,如没有则重新编译打包后再次执行测试

  • 执行用例时报用例超时错误:检查用例代码逻辑,确保即使断言失败场景也能走到done函数;或在IDE中修改用例执行超时配置参数

UI测试常见问题

  • 失败日志有"Get windows failed/GetRootByWindow failed"错误信息:系统ArkUI开关未开启,执行命令hdc shell param set persist.ace.testmode.enabled 1并重启设备

  • 失败日志有"uitest-api dose not allow calling concurrently"错误信息:检查用例实现,异步接口增加await语法糖调用;避免多进程执行UI测试用例

  • 失败日志有"dose not exist on current UI!"错误信息:在用例中代码查找到目标控件后,设备界面发生了变化,重新执行UI测试用例

测试最佳实践

1. 测试策略制定

在进行测试之前,开发者需要充分了解HarmonyOS NEXT的新特性和应用功能,明确测试需求和目标。根据测试需求制定详细的测试计划,包括测试范围、测试用例、测试环境等。

2. 分层测试实施

  • 单元测试:针对核心业务逻辑和工具函数编写单元测试,保证代码基础质量

  • 集成测试:验证模块间的接口调用和数据传递是否正确

  • UI测试:覆盖核心用户流程,确保关键路径畅通无阻

  • 兼容性测试:针对不同鸿蒙设备类型和系统版本进行测试

3. 持续测试集成

将自动化测试集成到CI/CD流程中,每次代码变更都自动触发测试任务,及时发现问题并快速反馈给开发团队。

结语

鸿蒙Next Test Kit为开发者提供了一站式的自动化测试解决方案,从底层的单元测试到高层的UI自动化,覆盖了应用测试的各个层面。随着鸿蒙生态的不断发展,掌握Test Kit的使用将成为鸿蒙开发者的必备技能。

通过合理利用Test Kit提供的各种工具和能力,开发者可以显著提升应用质量,减少缺陷逃逸,为用户提供更加稳定、流畅的鸿蒙应用体验。在纯血鸿蒙时代,高质量的应用程序将是生态成功的关键因素之一,而Test Kit正是实现这一目标的重要保障。

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

相关文章:

  • 《微信小程序》第一章:开发前准备与配置
  • 实验二-决策树-葡萄酒
  • 用双语网站做seo会不会建设一个网站需要哪些员工
  • 专项智能练习(教学过程的规律)
  • 设计模式-创建型设计模式
  • 非关系型数据库(NoSQL)学习指南:从入门到实战
  • Endnote | word中参考文献段落对齐及悬挂缩进的设置
  • MCU硬件学习
  • SpringBoot教程(十九) | SpringBoot集成Slf4j日志门面(优化版)
  • 帮别人备案网站大连企业网站建设模板
  • 关于反向传播
  • --- 数据结构 AVL树 ---
  • 8、docker容器跨主机连接
  • 怎么建网站教程视频app网站开发软件、
  • Python 检测运动模糊 源代码
  • PHP面试题——字符串操作
  • SOLIDWORKS 2025——2D与3D的集成得到了显著提升
  • TypeScript函数与对象的类型增强
  • 专业做网站方案手机登录不了建设银行网站
  • 盐城市城乡建设局门户网站珠海建网站多少钱
  • 合肥建设企业网站软件开发建设网站
  • Ansible三大Web界面方案全解析
  • 北京网站搭建哪家好电子采购平台系统
  • [Power BI] 表
  • 做一个网站需要多少时间手机不想访问指定网站怎么做
  • hash算法性能优化实战
  • Java虚拟线程原理与性能优化实战
  • 同城派送小程序
  • 做网站开票是多少个点的票大秦wordpress微信支付
  • 东莞营销型网站建设费用网站流量查询 优帮云