【鸿蒙开发示例代码】测试框架(UiTest)

示例代码合集地址:

HarmonyOS示例代码-鸿蒙系统示例代码-华为开发者联盟 (huawei.com)

代码工程地址:

UiTest: 本示例展示测试框架中UI测试框架的使用示例。 (gitee.com)

测试框架

介绍

本示例展示测试框架中UI测试框架的使用示例。

本实例需要引入UiTest接口@ohos.UiTest。

如需日志打印调试,需要引入日志打印接口@ohos.hilog。

效果预览

不涉及

使用说明

  • 将uitest目录下的项目工程整体导入到DevEco Studio开发工具中。
  • 查看ohostest目录下的测试代码实现。
  • 在DevEco Studio中执行测试用例代码查看执行效果,执行方式请参考官网的测试框架。
  • 本工程执行测试用例代码的结果,根据实际开发设备不同会有变更。请根据具体的开发设备修改代码中对应参数。

工程目录

├──entry/src/main/ets                             // 代码区
│  ├──clickability  
│  │  └──ClickAbility.ets                         // 点击入口类
│  ├──dragability  
│  │  └──DragAbility.ets                          // 拖拽入口类
│  ├──entryability  
│  │  └──EntryAbility.ets                         // 主程序入口类
│  ├──flingability  
│  │  └──FlingAbility.ets                         // 惯性滚动入口类
│  ├──inputability  
│  │  └──InputAbility.ets                         // 输入入口类
│  ├──mouseability  
│  │  └──MouseAbility.ets                         // 鼠标入口类
│  ├──pages  
│  │  ├──Click.ets                                // 点击页面
│  │  ├──Drag.ets                                 // 拖拽页面
│  │  ├──Fling.ets                                // 惯性滚动页面
│  │  ├──Fourth.ets                               // 第四页面
│  │  ├──Index.ets                                // 首页页面
│  │  ├──Input.ets                                // 输入页面
│  │  ├──Mouse.ets                                // 鼠标页面
│  │  ├──Pinch.ets                                // 捏合页面
│  │  ├──Scroller.ets                             // 滑动页面
│  │  ├──Swipe.ets                                // 滑块页面
│  │  └──Third.ets                                // 第三页面
│  ├──pinchability  
│  │  └──PinchAbility.ets                         // 捏合入口类
│  ├──pointmatrixability  
│  │  └──PointMatrixAbility.ets                   // 矩阵入口类
│  ├──scrollerability  
│  │  └──ScrollerAbility.ets                      // 滑动入口类
│  ├──swipeAbility  
│  │  └──SwipeAbility.ets                         // 滑块入口类
│  └──util  
│     └──Logger.ets                               // 日志工具类
├──entry/src/main/resources                       // 应用资源目录
├──entry/src/ohosTest/ets                         // 代码区
│  ├──test
│  │  ├──BasicExampleTest                        
│  │  │  └──BasicExample.test.ets                 // 基础自动化测试脚本
│  │  ├──findCommentExampleTest                        
│  │  │  ├──component
│  │  │  │  └──FindCommentExample.test.ets        // 寻找组件自动化脚本
│  │  │  └──window
│  │  │     └──FindWindowExample.test.ets         // 寻找窗口自动化脚本
│  │  ├──operationExampleTest                        
│  │  │  ├──ui
│  │  │  │  ├──ClickEvent.test.ets                // 点击事件自动化脚本
│  │  │  │  ├──FlingEvent.test.ets                // 惯性滚动事件自动化脚本
│  │  │  │  ├──InputEvent.test.ets                // 输入事件自动化脚本
│  │  │  │  ├──MouseEvent.test.ets                // 点击事件自动化脚本
│  │  │  │  ├──PinchEvent.test.ets                // 捏合事件自动化脚本
│  │  │  │  ├──PointMatrixEvent.test.ets          // 矩阵事件自动化脚本
│  │  │  │  ├──ScreenCapEvent.test.ets            // 捕获屏幕事件自动化脚本
│  │  │  │  ├──ScrollerEvent.test.ets             // 滑动事件自动化脚本
│  │  │  │  └──ScrollerEvent.test.ets             // 滑块事件自动化脚本
│  │  │  └──window
│  │  │     ├──MoveToEvent.test.ets               // 移动事件自动化脚本
│  │  │     ├──ReSizeWindow.test.ets              // 窗口大小自动化脚本
│  │  │     └──WindowAttr.test.ets                // 获取窗口自动化脚本
│  │  └──List.test.ets                            // 测试脚本列表
│  ├──testability
│  │  ├──pages
│  │  │  └──Index.ets                             // 首页页面
│  │  └──TestAbility.ets   
│  ├──testrunner                       
│  │  └──OpenHarmonyTestRunner.ets  
│  └──util                       
│     └──Logger.ts                                // 日志工具类
└──entry/src/ohosTest/resources                   // 应用资源目录

须知

  • 前提:引入UiTest依赖:import {Driver,ON,Component,Uiwindow,MatchPattern} from '@ohos.UiTest'
    1、On类提供的接口全部是同步接口,使用者可以使用builder模式链式调用其接口构造控件筛选条件。
    2、Driver和Component类提供的接口全部是异步接口(Promise形式),需使用await语法。
    3、Ui测试用例均需使用异步语法编写用例,需遵循单元测试框架异步用例编写规范。

具体实现

uitestUI测试框架示例内容
  • 1)在entry的index.ets中放页面组件。
  • 2)在ohosTest的test/basicExample.test.ets中it()定义一条测试用例,支持三个参数:用例名称,过滤参数和用例函数。用例操作的行为以异步的形式编写。
  • 3)指定唯一的ability即entry:通过want()中指定bundleName和abilityName:EntryAbility。
  • 4)启动指定ability(相当于手动运行hap):通过abilityDelegatorRegistry.getAbilityDelegator.startAbility(want)。
  • 5)获取当前应用最顶层的ability对象:通过abilityDelegatorRegistry.getAbilityDelegator.getCurrentTopAbility().then((ability)=>{}) 。
  • 6)引入Driver类作为UiTest测试框架的总入口,提供查找控件,定时器,断言,单机back键等能力。
  • 7)在第5步.then()中加入需要测试内容 :
    • 例如本案例中需要检验是否可以有back键能力:通过driver.pressBack()。
    • 检验是否可以定时1s后执行能力:通过driver.delayMs(1000)。
    • 日志打印:建议用例名称中的包名和日志中的包名单独用常量表示,方便包名变更整改,例如:hilog.info(DOMAIN, TAG, BUNDLE + "StartAbility_001, begin")。
  • 8)结束事件done();

相关权限

不涉及

依赖

不涉及

约束与限制

1.本示例仅支持标准系统上运行,支持设备:华为手机。

2.HarmonyOS系统:HarmonyOS NEXT Developer Beta1及以上。

3.DevEco Studio版本:DevEco Studio NEXT Developer Beta1及以上。

4.HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta1 SDK及以上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值