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
    +关注

    关注

    80

    文章

    2146

    浏览量

    35550

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVIC中断使能与禁止使

    ARM®Cortex-M0+ 处理器支持最多 32 个外部中断源,分别对应中断使设置寄存器 NIVC_ISER 的 32 个使位,和中断使
    发表于 11-13 07:14

    电气与中石油济柴签署框架合作协议

    近日,上电气股份有限公司(以下简称“上电气”)与中国石油集团济柴动力有限公司(以下简称“中石油济柴”)在上电气总部签署框架合作协议。
    的头像 发表于 10-11 16:13 355次阅读

    HarmonyOSAI编程单元测试用例

    根据选中的ArkTS方法名称,CodeGenie支持自动生成对应单元测试用例,提升测试覆盖率。 在ArkTS文档中,光标放置于方法名称上或框选完整的待
    发表于 08-27 14:33

    高效EOL测试:虹科Baby-LIN格栅电机控制与诊断

    虹科Baby-LIN-3-MB提供高效、灵活的格栅电机EOL测试解决方案,解决环境复杂、操作繁琐、效率低等痛点。
    的头像 发表于 07-22 14:06 1760次阅读
    赋<b class='flag-5'>能</b><b class='flag-5'>高效</b>EOL<b class='flag-5'>测试</b>:虹科Baby-LIN格栅电机控制与诊断

    方案分享 | ARXML 规则下 ECU 总线通讯与 ADTF 测试方案

    汽车电子开发新进展:ARXML 规则与 ADTF 框架结合,实现 ECU 总线通讯高效测试
    的头像 发表于 06-25 09:53 2830次阅读
    方案分享 | ARXML 规则下 ECU 总线通讯与 ADTF <b class='flag-5'>测试</b>方案

    UI开发概述

    基于ArkTS的声明式开发范式的方舟开发框架是一套开发极简、高性能、支持跨设备的UI开发框架,提供了构建应用UI所必需的能力,主要包括: ArkTS
    发表于 06-24 06:36

    什么是ArkTS

    TypeScript基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期检测更多错误,提升代码健壮性,并实现更好的运行性能。详见初识ArkTS语言。 ArkTS提供了标准
    发表于 06-17 06:24

    HarmonyOS5云服务技术分享--ArkTS开发Node环境

    )。 绑定刚创建的Node.js函数。 4️⃣ ​​本地测试与调试​​ 使用DevEco Studio的模拟器或真机调试: // ArkTS客户端调用示例 import cloud from
    发表于 05-22 17:21

    APP自动化测试框架

    APP自动化测试框架是一套结合工具链、设计模式和技术规范的集成解决方案。以下是基于主流技术实践的核心要点总结: 一、核心模块构成 环境管理‌ 支持物理机/虚拟机/容器化部署,集成ADB、Appium
    的头像 发表于 05-07 07:35 424次阅读
    APP自动化<b class='flag-5'>测试</b><b class='flag-5'>框架</b>

    KaihongOS操作系统:ArkTS语言基础

    ArkTS语言基础 KaihongOS是面向全场景的万物智联技术底座,在OpenHarmony基础上技术创新和系统能力增强的跨设备的操作系统,它支持多种设备类型。ArkTS是KaihongOS
    发表于 04-23 06:31

    全自动框架寿命测试机6大突破,助力腾方提升工作效率和提高产品质量

    随着制造业的智能化和自动化发展,自动寿命测试机也在不断完善。为了产品得到更好的验证,腾方中科在全自动测试设备上,更是投入大量的人力和物力,只为得到更高效、更可靠的
    的头像 发表于 02-06 09:14 597次阅读
    全自动<b class='flag-5'>框架</b>寿命<b class='flag-5'>测试</b>机6大突破,助力腾方提升工作效率和提高产品质量

    ArkTS语言基础介绍篇

    KaihongOS是一个开源的、跨设备的操作系统,它支持多种设备类型。ArkTS是KaihongOS应用开发中使用的TypeScript超集,提供了一套丰富的API来构建应用界面和逻辑。 详见资料说明!
    发表于 01-10 10:15

    OpenHarmony程序分析框架论文入选ICSE 2025

      近日,ICSE 2025软件工程实践Track放榜,面向OpenAtom OpenHarmony(以下简称“OpenHarmony”)的ArkTS程序分析基础框架--方舟程序分析器(论文题目为
    的头像 发表于 01-02 13:41 1830次阅读
    OpenHarmony程序分析<b class='flag-5'>框架</b>论文入选ICSE 2025

    商汤参与基于昇思AI框架的大模型原生开发成果发布

    近日,昇思人工智能框架峰会暨成果发布会在北京举办。AI框架作为大模型开发及产业落地的基础软件,在人工智能技术栈中起到使算法开发、释放硬件性能的“承上启下”作用。
    的头像 发表于 12-17 15:04 1117次阅读

    逆变器自动测试系统的技术原理和应用

    增加。在可再生能源并网的过程中,需要对储逆变器的性能进行全面的测试和评估,以确保其能够满足大规模并网的要求。储逆变器自动测试系统能够提供全面的
    发表于 12-16 15:07