中国总决赛
全球总决赛
学习进度
完成
省赛
能力分类
主要子系统
能力模型
单元测试用例验证应用功能逻辑,UI测试用例验证应用场景功能

应用/服务测试


测试的分类

  • 单元测试
在HarmonyOS NEXT应用单元测试可以在测试框架下进行,测试框架由核心模块和扩展模块组成。其中核心模块是测试框架的最小集,包含执行必备核心接口和逻辑。扩展模块是在核心模块的基础上增加一些常用能力,例如用例超时控制、用例筛选、数据驱动、压力测试等。核心模块采用插件化机制,提供接入能力和运行时上下文,扩展模块通过插件的方式接入。
  • UI测试
通过简洁易用的API提供查找和操作界面控件能力,支持开发者编写基于界面操作的自动化测试脚本
  • 专项测试
专项测试包括兼容性、稳定性、安全、性能、功耗、UX等,开发者可以结合各维度的应用质量建议,通过提供的多种专项测试工具来保障应用质量。
 

自动化测试框架

自动化测试框架arkxtest,作为工具集的重要组成部分,支持JS/TS语言的单元测试框架(JsUnit)及UI测试框架(UiTest)
  • JsUnit提供单元测试用例执行能力,提供用例编写基础接口,生成对应报告,用于测试系统或应用接口。
  • UiTest通过简洁易用的API提供查找和操作界面控件能力,支持用户开发基于界面操作的自动化测试脚本。
测试框架
  • 单元测试框架是测试框架的基础底座,提供了最基本的用例识别、调度、执行及结果汇总的能力。
  • UI测试框架主要对外提供了UiTest API供开发人员在对应测试场景调用,而其脚本的运行基础仍是单元测试框架。
单元测试框架主要功能
notion image
脚本基础流程运行图
notion image
UI测试框架主要功能
notion image
 
基于ArkTS编写和执行测试
在DevEco Studio中新建应用开发工程,其中ohosTest和test目录均为测试脚本所在的目录,API10及以上版本支持创建Instrument Test和Local Test。
  • Instrument Test:测试用例存放在ohosTest测试目录下,需要运行在设备或模拟器上,支持单元测试和UI测试。
  • Local Test:测试用例存放在test测试目录下,不需要运行在设备或模拟器上,支持单元测试。
 

单元测试框架(考点)

1.0.8版本开始单元测试框架以HAR(Harmony Archive)格式发布
单元测试框架功能特性
notion image
测试用例采用业内通用语法,describe代表一个测试套, it代表一条用例。(考点)
No.
API
功能说明
1
describe
定义一个测试套,支持两个参数:测试套名称和测试套函数。
2
beforeAll
在测试套内定义一个预置条件,在所有测试用例开始前执行且仅执行一次,支持一个参数:预置动作函数。
3
beforeEach
在测试套内定义一个单元预置条件,在每条测试用例开始前执行,执行次数与it定义的测试用例数一致,支持一个参数:预置动作函数。
4
afterEach
在测试套内定义一个单元清理条件,在每条测试用例结束后执行,执行次数与it定义的测试用例数一致,支持一个参数:清理动作函数。
5
afterAll
在测试套内定义一个清理条件,在所有测试用例结束后执行且仅执行一次,支持一个参数:清理动作函数。
6
beforeItSpecified
@since1.0.15在测试套内定义一个单元预置条件,仅在指定测试用例开始前执行,支持两个参数:单个用例名称或用例名称数组、预置动作函数。
7
afterItSpecified
@since1.0.15在测试套内定义一个单元清理条件,仅在指定测试用例结束后执行,支持两个参数:单个用例名称或用例名称数组、清理动作函数
8
it
定义一条测试用例,支持三个参数:用例名称,过滤参数和用例函数。
9
expect
支持bool类型判断等多种断言方法。
10
xdescribe
@since1.0.17定义一个跳过的测试套,支持两个参数:测试套名称和测试套函数。
11
xit
@since1.0.17定义一条跳过的测试用例,支持三个参数:用例名称,过滤参数和用例函数。
 
 
done 函数
  • done函数是测试函数的一个可选回调参数,在测试用例中手动调用,测试框架将等待done回调被调用,然后才完成测试。
  • 当测试函数中定义done函数参数时,测试用例中必须手动调用done函数,否则用例失败会出现超时错误。
 
Mock能力
  • 单元测试框架Mock能力从npm包1.0.1版本开始支持,需修改源码工程中package.info中配置依赖npm包版本号后使用。
  • 仅支持mock自定义对象,不支持mock系统API对象。不支持mock对象的私有函数。
  •  使用时候必须引入的mock能力模块: MockKit,when 根据自己用例需要引入断言能力api 例如:import { describe, expect, it, MockKit, when} from '@ohos/hypium'
 
数据驱动
  • 数据参数传递 : 为指定测试套、测试用例传递测试输入数据参数。
  • 压力测试 : 为指定测试套、测试用例设置执行次数。
  • 若要使用数据驱动传入参数功能,测试用例it的func必须传入两个参数:done定义在前面,data定义在后面;若不使用数据驱动传入参数功能,func可以不传参或传入done
 

UI测试

UI测试框架主要功能
notion image
UI测试框架功能特性
No.
特性
功能说明
1
Driver
Ui测试的入口,提供查找控件,检查控件存在性以及注入按键能力。
2
On
用于描述目标控件特征(文本、id、类型等),Driver根据On描述的控件特征信息来查找控件。
3
Component
Driver查找返回的控件对象,提供查询控件属性,滑动查找等触控和检视能力。
4
UiWindow
Driver查找返回的窗口对象,提供获取窗口属性、操作窗口的能力。
 
引入
  • import {Driver,ON,Component,UiWindow,MatchPattern} from '@ohos.UiTest'
须知:
  1. On类提供的接口全部是同步接口,使用者可以使用builder模式链式调用其接口构造控件筛选条件。
  1. DriverComponent类提供的接口全部是异步接口(Promise形式),需使用await语法
  1. Ui测试用例均需使用异步语法编写用例,需遵循单元测试框架异步用例编写规范。
 
ON使用说明
Ui测试框架通过On类提供了丰富的控件特征描述API,用来匹配查找要操作或检视的目标控件。On提供的API能力具有以下特点:
  • 支持匹配单属性和匹配多属性组合,例如同时指定目标控件text和id。
  • 控件属性支持多种匹配模式(等于,包含,STARTS_WITHENDS_WITH)。
  • 支持相对定位控件,可通过isBeforeisAfter等API限定邻近控件特征进行辅助定位。
 
Component使用说明
Component类代表了Ui界面上的一个控件,一般是通过Driver.findComponent(on)方法查找到的。通过该类的实例,用户可以获取控件属性,单击控件,滑动查找,注入文本等操作。
 
UiWindow使用说明
UiWindow类代表了Ui界面上的一个窗口,一般是通过Driver.findWindow(WindowFilter)方法查找到的。通过该类的实例,用户可以获取窗口属性,并进行窗口拖动、调整窗口大小等操作。
Loading...
Koreyoshi
Koreyoshi
一个无可救药的乐观主义者
Latest posts
软件测试:集成测试
2025-3-25
软件测试:控制流测试
2025-3-25
软件测试:系统测试
2025-3-25
软件测试:数据流测试
2025-3-25
软件测试:测试驱动开发
2025-3-25
软件工程:面向对象的概念和记号
2025-3-24
Announcement
🎉写给自己的2025心愿🎉
保研
国奖
完善博客
学一门乐器
发表一篇论文
拍摄人生照片
去3个城市旅游
专业课知识视频
拍摄毕业季视频
----- 2025 ------
👏希望我们一起变好👏