鸿蒙应用示例:DevEco Testing 工具的常用功能及使用场景

DevEco Studio 是鸿蒙生态中的集成开发环境(IDE),而 DevEco Testing 工具则是专门用于测试鸿蒙应用的强大工具。本文将详细介绍 DevEco Testing 中几个常用的测试功能及其使用场景,并给出相应的代码示例。

【1】安装应用

使用场景:在鸿蒙系统中,测试包不能像安卓那样直接发送给其他人进行安装测试。开发者需要将 .hap 测试包提供给测试人员,并指导他们通过 DevEco Testing 工具进行安装。这种方法特别适用于开发团队与测试团队不在同一个地理位置的情况。

操作步骤:

  1. 将测试手机通过数据线连接至电脑。

  2. 打开 DevEco Testing 工具。

  3. 依次选择 "实用工具" -> "设备投屏" -> "安装应用"。

  4. 选择对应的 .hap 包进行安装。

注意事项:

• 生成 .hap 和 .app 包的目录位置不同:

• .hap 目录:项目根目录 /entry/build/default/outputs/default/entry-default-signed.hap

• .app 目录:项目根目录 /build/outputs/default/项目名称-default-signed.app

• .app 包只能使用生产证书,且仅用于发布到应用商店,无法通过 hdc 命令或者 DevEco Testing 进行安装。

【2】获取设备信息

使用场景:在测试过程中,当发现应用出现问题时,测试人员可以通过 DevEco Testing 工具获取设备信息,并将其发送给开发人员以协助排查问题。

代码示例:
登录后复制

javascript 复制代码
import { deviceInfo } from '@kit.BasicServicesKit';
import { display } from '@kit.ArkUI';

@Entry
@Component
struct Page05 {
  build() {
    Column() {
      Button('测试').onClick(() => {
        if (canIUse('SystemCapability.Startup.SystemInfo')) {
          //需要添加权限 ohos.permission.sec.ACCESS_UDID ,但普通app没这个权限,所以代码没办法获取到udid
          //这个权限可以获取 udid 和 SN (Serial Number) (序列号)
          // udid格式 00008020-001D31FF0A8A
          // SN格式 A1B2C3D4E5F6G7H8 【序列号可能包含的信息有生产日期、制造地点等,具体取决于制造商的设计标准。】
          // console.info(`设备udid : ${deviceInfo.udid ? deviceInfo.udid : '-'}`); //获取不到时展示-
          console.info(`设备标识 : ${deviceInfo.serial || '-'}`); //为空字符串或其他"假"值时,输出 '-'。
        } else {
          console.info('设备标识 : -');
        }

        let marketNameInfo: string = deviceInfo.marketName;
        console.info('设备名称 : ' + marketNameInfo || '-');

        let productModelInfo: string = deviceInfo.productModel;
        console.info('设备型号 : ' + productModelInfo || '-');

        let displayVersionInfo: string = deviceInfo.displayVersion;
        console.info('系统版本 : ' + displayVersionInfo || '-');

        /*
        常见的 ABI标识符:
        * 32位ARM架构: armeabi-v7a
        * 64位ARM架构: arm64-v8a
        * 32位x86架构: x86
        * 64位x86架构: x86_64
        * MIPS架构: mips, mips64
         * */
        //
        let abiListInfo: string = deviceInfo.abiList;
        if (abiListInfo == 'arm64-v8a' || abiListInfo == 'x86_64') {
          console.info('版本位数 : ' + 64 + '位');
        } else if (abiListInfo == 'armeabi-v7a' || abiListInfo == 'x86') {
          console.info('版本位数 : ' + 32 + '位');
        } else {
          console.info('版本位数 : ' + '-');
        }

        let sdkApiVersionInfo: number = deviceInfo.sdkApiVersion;
        console.info('API版本 : ' + sdkApiVersionInfo || '-');

        console.info('CPU类型 : ' + '-') //没查到相关api

        console.info('CPU架构 : ' + abiListInfo || '-')

        console.info('CPU核数 : ' + '-') //没查到相关api

        console.info('GPU类型 : ' + '-') //没查到相关api

        console.info('内存大小 : ' + '-') //没查到相关api

        let width = display.getDefaultDisplaySync().width
        let height = display.getDefaultDisplaySync().height
        console.info('屏幕尺寸 : ' + width + ' x ' + height) //单位px
      })
    }
    .height('100%')
    .width('100%')
  }
}

打印示例:
登录后复制

javascript 复制代码
设备标识 : -
设备名称 : HUAWEI Mate 60 Pro
设备型号 : ALN-AL80
系统版本 : ALN-AL80 5.0.0.68(SP7C00E68R4P9log)
版本位数 : 64位
API版本 : 13
CPU类型 : -
CPU架构 : arm64-v8a
CPU核数 : -
GPU类型 : -
内存大小 : -
屏幕尺寸 : 1260 x 2720

【3】获取应用信息并启动应用

使用场景:当需要在鸿蒙应用中调用另一个应用的功能时,可以利用 DevEco Testing 工具获取目标应用的相关信息,并通过代码启动该应用。

比如想要跳转到手机的微博, 就可以看到两个跳转时的重要信息:

包名称 : com.sina.weibo.stage和主Ability : EntryAbility。

代码示例:
登录后复制

javascript 复制代码
import { common, Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct Page06 {
  build() {
    Column() {
      Button('启动微博').onClick(() => {
        let want: Want = {
          bundleName: 'com.sina.weibo.stage',
          abilityName: 'EntryAbility'
        };
        (getContext(this) as common.UIAbilityContext).startAbility(want).then(() => {
          console.info('启动微博成功');
        }).catch((err: BusinessError) => {
          console.error(`启动微博失败: ${err.message}`);
        });
      })
    }
    .width('100%')
    .height('100%')
  }
}

【4】支持hdc命令

参考官方文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/hdc-V5

结论

通过 DevEco Testing 工具,开发者可以在测试过程中更加便捷地安装应用、获取设备信息以及启动其他应用。这些功能不仅提高了测试效率,还使得团队协作更加顺畅。对于鸿蒙应用开发者来说,熟悉并掌握这些工具的使用方法是非常重要的。

相关推荐
lqj_本人4 小时前
鸿蒙next版开发:相机开发-预览(ArkTS)
数码相机·华为·harmonyos
柯南二号7 小时前
HarmonyOS ArkTS 下拉列表组件
前端·javascript·数据库·harmonyos·arkts
帅比九日8 小时前
【HarmonyOS NEXT】实战——登录页面
前端·学习·华为·harmonyos
鸿蒙开天组●8 小时前
鸿蒙进阶篇-属性动画-animateTo&转场动画
华为·harmonyos
howard200511 小时前
鸿蒙实战:页面跳转
华为·harmonyos·页面跳转
lqj_本人11 小时前
鸿蒙next版开发:ArkTS组件通用属性(禁用控制)
华为·harmonyos
火柴就是我11 小时前
Harmony AttributeModifier 基本使用
harmonyos
智汇云校乐乐老师12 小时前
千帆启航,人才先行 | 讯方技术HarmonyOS人才训练营
华为认证·harmonyos·华为harmonyos认证
lqj_本人12 小时前
鸿蒙next版开发:使用HiChecker检测问题(ArkTS)
华为·harmonyos
CWPIN2112 小时前
《鸿蒙生态:开发者的机遇与挑战》
华为·harmonyos