0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Hypium框架使能ArkTS应用高效测试

HarmonyOS开发者 来源:未知 2023-03-11 13:10 次阅读

作者:leidan,软件测试开发工程师

HarmonyOS发布了声明式开发框架ArkUI,带来了极简高效的开发体验,备受广大开发者的青睐。那么,我们在开发过程中,如何确保ArkTS应用的功能和界面满足预期呢?ArkTS应用怎样高效进行专项测试?接下来,有请我们本期的主角——自动化测试框架Hypium闪亮登场。



Hypium测试框架介绍


想必大家对自动化测试框架Hypium并不陌生,此前有关于Hypium的详细介绍《HarmonyOS自动化测试框架—Hypium》,大家可自行查阅。下面,我们一起了解Hypium测试框架,主要涵盖三个维度:


1、测试执行调度层

xDevice支持手机、平板、PC、穿戴、智慧屏、音箱和车机等多设备,助力应用跨设备测试验证。


2、测试框架层

涵盖HTSUnit、HUITest、HCUnit与HCPPTest多层次测试框架,从应用的单元/接口层、到UI界面层、再到C/C++系统层,构建多维度测试服务保障。


3、测试能力库

包含系统测试组件、UITestKit组件、专项测试组件,以及分布式测试组件,实现丰富的场景模拟能力和跨设备分布式测试能力。

Hypium测试框架架构


Hypium测试框架以插件形式集成到DevEco Studio中,使用非常便捷。今天,我们重点分享Hypium新版本支持ArkUI引擎,同时新增了测试能力库,构建丰富的场景模拟能力和专项测试执行能力,全面使能ArkTS应用自动化测试。



丰富的场景模拟API,助力多层次测试


ArkTS应用采用了类似MVC经典结构1,包括View(视图)、Model(模型)、Server(服务)三个部分。View(视图)负责页面元素定义生成页面和一些基础的页面逻辑;Model(模型)是数据模型,负责存储应用的数据;Server(服务)负责处理复杂的业务逻辑,包括网络、设备硬件交互等。针对三个不同层次的测试场景,我们可以采用不同的测试方式,验证应用的正确性。


1、View层:UI界面层,建议使用系统集成测试,验证基础功能和界面。

2、Model层:数据逻辑层,可以使用应用接口测试,验证数据逻辑的正确性。

3、Server层:业务逻辑层,可以使用应用接口测试,验证业务逻辑的正确性。

ArkTS应用多层次测试


在测试过程中,为了验证应用的功能,我们需要构建不同的场景。例如,测试导航场景需要构建位置移动轨迹,测试重力感应游戏需要构建重力传感器数据,测试低电量场景需要等到设备电量低于5%等。但构建这些场景耗时费力,甚至部分无法实现自动化,只能依赖人工测试,基于这种情况,Hypium测试框架提供了通用的接口模拟能力,支持开发者模拟应用接口,快捷构建测试场景。


以下是单元测试模拟能力通用接口列表:

模拟能力通用接口


使用以上模拟接口,我们可以便捷地模拟任意接口的返回值,从而达到场景模拟效果,提升应用单元测试效率。但对于部分特殊场景,开发者模拟效率较低,通用模拟能力无法满足特定的测试需求。别担心,除了通用模拟能力,Hypium测试框架还提供了特殊场景模拟能力,包括设备交互模拟、设备环境模拟、云端交互模拟。


1、设备交互模拟:构建应用与设备之间数据交互模拟能力,主要模拟设备物理器件数据与应用的交互,包括不限于:物理位置模拟、重力传感器、加速度传感器等多种传感器数据模拟。基于设备交互模拟能力可以构建多种场景,例如:导航、重力感应、接近光等。

2、设备环境模拟:构建设备状态的模拟能力,包括不限于:系统电量、信号强度、媒体播放、资源占用等,基于设备环境模拟能力可以构造设备的不同状态,例如:低电量、弱信号、后台媒体播放等。

3、云端交互模拟:构建云端模拟能力,模拟云端服务器的返回值,将应用与云端服务解耦。



专项测试执行能力,使能多维度测试


ArkTS应用除了基础的测试场景外,还面临很多特殊的测试场景,例如:如何测试应用接口的性能?接口的参数类型比较多,如何实现全量覆盖?测试某项场景时,如何避免执行全部测试用例,只执行相应部分测试用例?

针对这些特殊场景,Hypium测试框架从测试执行粒度、执行方式、执行调度等多维度提供压力、数据驱动、筛选能力等场景的测试执行能力,进一步提升ArkTS应用测试执行效率。


1、压力测试

适用于接口压力测试场景,用户可以自定义测试用例的执行次数。执行测试aa test测试命令带上压力参数即可,例如:

aa test –p xxxx –n xxxxx –s stress 10

参数

取值

含义

-s stress

正整数

测试用例执行次数


2、数据驱动测试

适用于接口参数类型比较多,无法通过测试用例直接覆盖的场景。我们可以自定义配置参数快捷驱动测试用例的执行次数和每一次传入的参数,使用时依赖data.json配置文件,文件内容如下:


{

"suites":[{

"describe":["actsAbilityTest"],

"stress":2,

"params":{

"suiteParams1":"suiteParams001",

"suiteParams2":"suiteParams002"

},

"items":[{

"it":"testDataDriverAsync",

"stress":2,

"params":[{

"name":"tom",

"value":5

},{

"name":"jerry",

"value":4

}]

},{

"it":"testDataDriver",

"stress":3

}]

}]

}

左右滑动,查看更多


配置参数说明:


3、测试用例筛选

Hypium支持根据用例属性,筛选执行指定的测试用例,使用方式是先在测试用例上标记用例属性后,再在测试应用的启动shell命令后新增"-s ${Key} ${Value}"。


示例代码

import{ describe, it, expect,TestType,Size,Level}from'@ohos/hypium';


exportdefaultfunctionattributeTest() {

describe('attributeTest',function() {

it("testAttributeIt",TestType.FUNCTION |Size.SMALLTEST |Level.LEVEL0,function() {

console.info('Hello Test');

})

})

}

左右滑动,查看更多


示例命令

XX -s level1-s size small -s testTypefunction

左右滑动,查看更多


该命令的作用是:筛选测试应用中同时满足a)用例级别是1 b)用例粒度是small c)用例测试类型是function 三个条件的用例执行。


4、测试套筛选

测试套与用例名称使用“#”号连接,多个筛选规则使用“,”英文逗号分隔。

Key

含义说明

Value取值范围

class

指定要执行的测试套&用例

${describeName}#${itName},${describeName} , 例如:-s class attributeTest#testAttributeIt

notClass

指定不执行的测试套&用例

${describeName}#${itName},${describeName} , 例如:-s notClass attributeTest#testAttributeIt


示例命令

XX -s class attributeTest#testAttributeIt,abilityTest#testAbilityIt

左右滑动,查看更多


本期分享的自动化测试框架Hypium,你学会了吗?快来上手试试吧!未来,我们还将继续打磨演进Hypium测试能力,助力大家开发更卓越的应用产品,广大开发者朋友敬请期待!


1MVC结构即 Model 模型、View 视图、Controller 控制器



END


想了解更多HarmonyOS技术?

后台留言给我们

立刻安排!


欢迎点击|阅读原文

进入HarmonyOS应用开发在线体验


原文标题:Hypium框架使能ArkTS应用高效测试

文章出处:【微信公众号:HarmonyOS开发者】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HarmonyOS
    +关注

    关注

    79

    文章

    1975

    浏览量

    30191

原文标题:Hypium框架使能ArkTS应用高效测试

文章出处:【微信号:HarmonyOS_Dev,微信公众号:HarmonyOS开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ArkTS开发指南优化上新

    ArkTS是HarmonyOS应用开发的官方高级语言,提供了声明式UI范式、状态管理、渲染控制等相应能力,让开发者能够以更简洁、更自然的方式开发应用。
    的头像 发表于 11-20 14:14 277次阅读
    <b class='flag-5'>ArkTS</b>开发指南优化上新

    高效太阳光伏测试仪器:确保IEC 62446合规与光伏系统安全

    高效太阳光伏测试仪器确保IEC62446合规与系统安全。多功能测试仪简化测试流程,自动执行电气测试
    的头像 发表于 08-22 11:01 275次阅读

    HarmonyOS Next原生应用开发-从TS到ArkTS的适配规则(十五)

    一、不支持for … in 规则:arkts-no-for-in 级别:错误 由于在ArkTS中,对象布局在编译时是确定的、并且不能在运行时被改变,所以不支持使用for … in迭代一个对象的属性
    发表于 08-19 16:13

    鸿蒙原生应用元服务开发-仓颉ArkTS相互操作(一)

    在 OpenHarmony 系统上,ArkTS 具备完整广泛的生态,为复用 ArkTS 生态,仓颉支持与 ArkTS 高效跨语言互通。 仓颉-Ark
    发表于 07-31 17:43

    英伟达推出Flextron AI框架:赋灵活高效的AI模型部署

    在人工智能与机器学习领域,随着技术的不断演进,模型的高效部署与适应性成为研究的新热点。近日,英伟达与德克萨斯大学奥斯汀分校携手宣布了一项重大突破——推出了一种名为FLEXTRON的新型灵活模型架构及训练后优化框架,这一创新成果为AI模型的广泛应用与
    的头像 发表于 07-18 15:22 2756次阅读

    伺服电机的使信号及其相关问题

    伺服电机是一种高精度、高响应速度的电机,广泛应用于工业自动化、机器人、航空航天等领域。伺服电机的使信号是控制电机启动和停止的关键信号,对于电机的正常运行和安全性能具有重要意义。 伺服电机使
    的头像 发表于 07-10 14:58 1624次阅读

    户外便携储电源自动化测试系统高效完成电源测试

    纳米软件电源自动化测试系统是基于ATECLOUD平台开发的、针对储电源及其它电源模块的自动化测试系统方案。该系统实现0代码开发,对测试仪器指令进行封装,简单拖拽指令便可完成
    的头像 发表于 07-08 16:44 504次阅读
    户外便携储<b class='flag-5'>能</b>电源自动化<b class='flag-5'>测试</b>系统<b class='flag-5'>高效</b>完成电源<b class='flag-5'>测试</b>

    HarmonyOS Next 原生应用开发-ArkTS语法适配背景说明

    临相同的问题。ArkTS解决了这个问题。由于使了静态类型检查,ArkTS代码将会被编译成方舟字节码文件,而不是JS代码。因此,ArkTS
    发表于 07-01 16:49

    伺服开启使ON接什么点

    伺服电机是一种高精度、高响应速度的电机,广泛应用于自动化设备、机器人、数控机床等领域。在伺服电机的控制中,使信号(Enable Signal)是一个非常重要的信号,它用于控制伺服电机的启动和停止
    的头像 发表于 06-14 10:21 2134次阅读

    Python自动化测试框架及其应用

    Pytest是一个非常成熟的全功能的Python测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起
    的头像 发表于 04-03 16:15 554次阅读
    Python自动化<b class='flag-5'>测试</b><b class='flag-5'>框架</b>及其应用

    鸿蒙实战开发ArkTS运用:【ai聊天框】

    用一个ArkTS编写的HarmonyOS原生聊天UI框架,提供了开箱即用的聊天对话组件。
    的头像 发表于 03-08 15:38 956次阅读
    鸿蒙实战开发<b class='flag-5'>ArkTS</b>运用:【ai聊天框】

    鸿蒙语言ArkTS(更好的生产力与性能)

    有限的问题,ArkTS对并发编程API和能力进行了增强。 ArkTS支持与JS/TS高效互操作,兼容JS/TS生态。 ArkTS设计理念 为更好地支持HarmonyOS应用的开发和运行
    发表于 02-17 15:56

    鸿蒙开发之ArkTS基础知识

    一、ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配了鸿蒙的ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以
    的头像 发表于 01-24 16:44 2265次阅读
    鸿蒙开发之<b class='flag-5'>ArkTS</b>基础知识

    鸿蒙入门实战-ArkTS开发

    声明式UI基本概念 应用界面是由一个个页面组成,ArkTS是由ArkUI框架提供,用于以声明式开发范式开发界面的语言。 声明式UI构建页面的过程,其实是组合组件的过程,声明式UI的思想,主要体现在
    发表于 01-16 17:27

    鸿蒙ArkTS的起源和简介

    语义等等。我们将持续致力于提供简洁高效的并发API,帮助应用开发者更容易开发出高性能的应用。 当然,ArkTS以及ArkUI开发框架还很年轻,还有很多其它方面也会持续演进,比如UI自定义能力的进一步
    发表于 01-16 16:23