鸿蒙APP测试实战:从HDC命令到专项测试

news2025/7/27 5:09:29

普通APP的测试与鸿蒙APP的测试有一些共同的特征,但是也有一些区别,其中共同特征是,它们都可以通过cmd的命令提示符工具来进行app的性能测试。

其中区别主要是,对于稳定性测试的命令的区别,性能指标获取方式的命令的区别,安装的命令,卸载的命令,等等。此外,鸿蒙APP还有一个专项测试。

这篇文章就将普通APP的测试方法以及鸿蒙APP的测试的方法进行一定程度的梳理。希望能从中发现一些共通点。

这篇文章作为鸿蒙APP以及安卓APP的第一篇总结性文章,将带着以下问题进行展开:

1:什么是hdc? 什么是adb?

2:adb的shell命令可以用在鸿蒙hdc 的shell上面吗?

3:adb的性能测试的日志文件与hdc的性能测试的日志一样吗?

对于五类性能测试的方法及其log的主要分析。这五类的方法分别是: hdc稳定性测试,hdc性能测试,hdc专项测试,adb稳定性测试,adb性能测试。

4:鸿蒙的包名的格式和安卓的包名的格式一样吗?

带着以上的疑问我将写一篇相关的文章,同时,此次测试的鸿蒙官方文档的出处以及测试的心得也将列出来。

本文很多的描述都是来自 <文心快码>等AI搜索生成。

第二部分、鸿蒙APP的测试详细步骤

第一步、开启DevEco Studio

第二步、选择 “设备管理器”

第三步、在模拟器中启动该设备并打开模拟器

第四步、打开命令提示符 输入 hdc list targets

如果显示的是 127.0.0.1:5555 则说明是查询到了已经连接的所有目标设备为

本地的 127.0.0.1:5555

添加-v参数,则会打印设备详细信息

<以下是参考出处 :

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/hdc-V13>

第五步、使用pycharm运行自动化测试脚本

验证是否可以使用pycharm工具进行自动化测试的运行。

第六步、使用hdc命令进行稳定性随机测试及其日志分析

稳定性随机测试就是设置参数,并且让程序随机的启动程序,随机的点击,并且设置执行次数的方法,同时也设置了启动程序的时间间隔。

在执行完成之后,可以根据log中保留的日志情况,查看日志中的异常数据,如果含有异常数据,则提交异常数据给开发进行修复。

这种稳定性测试是随机测试,任何应用都可能拉起的,因此它并没有指定APP的名称。而后面介绍的专项测试则指定了应用的名称。

wukong exec 命令含义

  • -s 参数设置随机种子

  • -i 参数设置应用拉起间隔

  • -a 参数设置应用随机拉起测试比例

  • -t 参数设置屏幕随机touch测试比例

  • -c 参数设置执行的次数

比如命令为:

hdc shell wukong exec -s 10 -i 1000 -a 0.28 -t 0.72 -c 100

<LOG 存放路径自动显示在日志中>

<以下是参考出处 :

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/wukong-guidelines-V13 >

第七步

使用hdc命令进行性能测试 SP_Daemon及其日志分析

性能测试通过使用不同的性能测试的指标,来查看系统的性能情况,

包括FPS、CPU、GPU、RAM、Temp等等性能指标

常用命令:

hdc shell SP_daemon -N 2 -t

解释 :

-N 设置采集次数,一秒采集一次

-t 采集GPU 温度,系统芯片温度

<以下是参考出处 :

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/smartperf-guidelines-V13 > 

以上是不指定包名的,如果要指定包名,则增加 -PKG 参数 如:

SP_daemon -N 2 -PKG ohos.samples.ecg -c

<LOG存放路径没有自动显示在日志中>

  • 采集结果默认输出路径:

    /data/local/tmp/data.csv

第八步、使用hdc命令测试稳定性专项测试及其日志分析

专项测试是指定了某一个应用的名称的测试,运行后可以自动生成测试报告”汇总”。

常用命令 : 

hdc shell wukong special -C [bundlename] -p

<以下是参考出处 :

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/wukong-guidelines-V13>

  • 可以到我的个人号:atstudy-js,这里有10W+ 热情踊跃的测试小伙伴们,一起交流行业热点、测试技术各种干货,一起共享面试经验、跳槽求职各种好用的。        

  • 多行业测试学习交流群,内含直播课+实战+面试资料

    AI测试、 车载测试、自动化测试、银行、金融、游戏、AIGC.

<LOG 存放路径自动显示在日志中>

第九步、研究使用adb shell 中的命令是否可以在hdc中运行

‌dumpsys‌是Android操作系统中的一个命令行工具,并不适用于鸿蒙系统。

第十步:使用hdc 进行包名查询

<以下是参考出处 :

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/bm-tool-V13>

显示所有已安装的Bundle名称: hdc shell bm dump -a

获取app的ability 名字 hdc shell aa dump -a

<以下是参考出处 :

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/aa-tool-V13 >

第十一步:hdc如何抓取终端的日志

<以下是参考出处:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/hdc-V13>

hdc hilog> a.log

第十二步:hdc的文件传输命令

<以下是参考出处:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/hdc-V13>

hdc file send localpath remotepath   

比如 /data/local/tmp

hdc file recv remotepath localpath

第十三步:

hdc的安装 卸载命令

<以下是参考出处:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/hdc-V5 >

安装

hdc install [-r|-s] src

hdc install E:\example.hap

卸载

hdc uninstall com.example.hello

第十四步:

启动APP 和停止APP

<以下是参考出处:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/aa-tool-V5 >

  • 以下是启动app的命令:

aa start [-d <deviceId>] [-a <abilityName> -b <bundleName>]

  • 以下是停止app的命令:

aa force-stop <bundleName>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2406151.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS-ArkUI 自定义弹窗

自定义弹窗 自定义弹窗是界面开发中最为常用的一种弹窗写法。在自定义弹窗中&#xff0c; 布局样式完全由您决定&#xff0c;非常灵活。通常会被封装成工具类&#xff0c;以使得APP中所有弹窗具备相同的设计风格。 自定义弹窗具备的能力有 打开弹窗自定义布局&#xff0c;以…

[electron]预脚本不显示内联script

script-src self 是 Content Security Policy (CSP) 中的一个指令&#xff0c;它的作用是限制加载和执行 JavaScript 脚本的来源。 具体来说&#xff1a; self 表示 当前源。也就是说&#xff0c;只有来自当前网站或者当前页面所在域名的 JavaScript 脚本才被允许执行。"…

开疆智能Ethernet/IP转Modbus网关连接斯巴拓压力传感器配置案例

本案例是将ModbusRTU协议的压力传感器数据上传到欧姆龙PLC&#xff0c;由于PLC采用的是Ethernet/IP通讯协议&#xff0c;两者无法直接进行数据采集。故使用开疆智能研发的Ethernet转Modbus网关进行数据转换。 配置过程 首先我们开始配置Ethernet/IP主站&#xff08;如罗克韦尔…

【Redis】Redis 的持久化策略

目录 一、RDB 定期备份 1.2 触发方式 1.2.1 手动触发 1.2.2.1 自动触发 RDB 持久化机制的场景 1.2.2.2 检查是否触发 1.2.2.3 线上运维配置 1.3 检索工具 1.4 RDB 备份实现原理 1.5 禁用 RDB 快照 1.6 RDB 优缺点分析 二、AOF 实时备份 2.1 配置文件解析 2.2 开启…

20250607在荣品的PRO-RK3566开发板的Android13系统下实现长按开机之后出现插入适配器不会自动启动的问题的解决

20250607在荣品的PRO-RK3566开发板的Android13系统下实现长按开机之后出现插入适配器不会自动启动的问题的解决 2025/6/7 17:20 缘起&#xff1a; 1、根据RK809的DATASHEET&#xff0c;短按开机【100ms/500ms】/长按关机&#xff0c;长按关机。6s/8s/10s 我在网上找到的DATASHE…

浏览器工作原理01 [#]Chrome架构:仅仅打开了1个页面,为什么有4个进程

引用 浏览器工作原理与实践 Chrome打开一个页面需要启动多少进程&#xff1f;你可以点击Chrome浏览器右上角的“选项”菜单&#xff0c;选择“更多工具”子菜单&#xff0c;点击“任务管理器”&#xff0c;这将打开Chrome的任务管理器的窗口&#xff0c;如下图 和Windows任务管…

智能问数Text2SQL Vanna windows场景验证

架构 Vanna 是一个开源 Python RAG&#xff08;检索增强生成&#xff09;框架&#xff0c;用于 SQL 生成和相关功能。 机制 Vanna 的工作过程分为两个简单步骤 - 在您的数据上训练 RAG“模型”&#xff0c;然后提出问题&#xff0c;这些问题将返回 SQL 查询&#xff0c;这些查…

【VLAs篇】02:Impromptu VLA—用于驱动视觉-语言-动作模型的开放权重和开放数据

项目描述论文标题Impromptu VLA&#xff1a;用于驱动视觉-语言-动作模型的开放权重和开放数据 (Impromptu VLA: Open Weights and Open Data for Driving Vision-Language-Action Models)研究问题自动驾驶的视觉-语言-动作 (VLA) 模型在非结构化角落案例场景中表现不佳&#xf…

[学习笔记]使用git rebase做分支差异化同步

在一个.NET 项目中&#xff0c;使用了Volo.Abp库&#xff0c;但出于某种原因&#xff0c;需要源码调试&#xff0c;因此&#xff0c;使用源码方式集成的项目做了一个分支archive-abp-source 其中引用方式变更操作的提交为&#xff1a;7de53907 后续&#xff0c;在master分支中…

【Linux应用】Linux系统日志上报服务,以及thttpd的配置、发送函数

【Linux应用】Linux系统日志上报服务&#xff0c;以及thttpd的配置、发送函数 文章目录 thttpd服务安装thttpd配置thttpd服务thttpd函数日志效果和文件附录&#xff1a;开发板快速上手&#xff1a;镜像烧录、串口shell、外设挂载、WiFi配置、SSH连接、文件交互&#xff08;RADX…

Jmeter(四) - 如何在jmeter中创建网络测试计划

1.简介 如何创建基本的 测试计划来测试网站。您将创建五个用户&#xff0c;这些用户将请求发送到JMeter网站上的两个页面。另外&#xff0c;您将告诉用户两次运行测试。 因此&#xff0c;请求总数为&#xff08;5个用户&#xff09;x&#xff08;2个请求&#xff09;x&#xff…

2025年上海市“星光计划”第十一届职业院校技能大赛 网络安全赛项技能操作模块样题

2025年上海市“星光计划”第十一届职业院校技能大赛 网络安全赛项技能操作模块样题 &#xff08;二&#xff09;模块 A&#xff1a;安全事件响应、网络安全数据取证、应用安全、系统安全任务一&#xff1a;漏洞扫描与利用:任务二&#xff1a;Windows 操作系统渗透测试 :任务三&…

Modbus转ETHERNET IP网关:快速冷却系统的智能化升级密钥

现代工业自动化系统中&#xff0c;无锡耐特森Modbus转Ethernet IP网关MCN-EN3001扮演着至关重要的角色。通过这一技术&#xff0c;传统的串行通讯协议Modbus得以在更高速、更稳定的以太网环境中运行&#xff0c;为快速冷却系统等关键设施的自动化控制提供了强有力的支撑。快速冷…

Linux——TCP和UDP

一、TCP协议 1.特点 TCP提供的是面向连接、可靠的、字节流服务。 2.编程流程 &#xff08;1&#xff09;服务器端的编程流程 ①socket() 方法创建套接字 ②bind()方法指定套接字使用的IP地址和端口。 ③listen()方法用来创建监听队列。 ④accept()方法处理客户端的连接…

Android Settings 数据库生成、监听与默认值配置

一、Settings 数据库生成机制​ ​传统数据库生成&#xff08;Android 6.0 前&#xff09;​​ ​路径​&#xff1a;/data/data/com.android.providers.settings/databases/settings.db​创建流程​&#xff1a; ​SQL 脚本初始化​&#xff1a;通过 sqlite 工具创建数据库文件…

SeaweedFS S3 Spring Boot Starter

SeaweedFS S3 Spring Boot Starter 源码特性环境要求快速开始1. 添加依赖2. 配置文件3. 使用方式方式一&#xff1a;注入服务类方式二&#xff1a;使用工具类 API 文档SeaweedFsS3Service 主要方法SeaweedFsS3Util 工具类方法 配置参数运行测试构建项目注意事项集成应用更多项目…

智慧城市项目总体建设方案(Word700页+)

1 背景、现状和必要性 1.1 背景 1.1.1 立项背景情况 1.1.2 立项依据 1.2 现状 1.2.1 党建体系运行现状 1.2.2 政务体系运行现状 1.2.3 社会治理运行现状 1.2.4 安全监管体系现状 1.2.5 环保体系运行现状 1.2.6 城建体系运行现状 1.2.7 社区体系运行现状 1.2.8 园区…

详解ZYNQ中的 RC 和 EP

详解ZYNQ中的 RC 和 EP 一、ZYNQ FPGA 开发板基础&#xff08; ZC706 &#xff09; 1. 核心特点 双核大脑 灵活积木&#xff1a; ZC706 集成了 ARM Cortex-A9 双核处理器&#xff08;相当于电脑 CPU&#xff09;和 FPGA 可编程逻辑单元&#xff08;相当于可自定义的硬件积木…

STM32CubeMX-H7-19-ESP8266通信(中)--单片机控制ESP8266实现TCP地址通信

前言 上篇文章我们已经能够使用串口助手实现esp8266的几种通信&#xff0c;接下来我们使用单片机控制实现。这篇文章会附带教程&#xff0c;增加.c和,.h&#xff0c;把串口和定时器放到对应的编号&#xff0c;然后调用初始化就可以使用了。 先讲解&#xff0c;然后末尾再放源码…

【汇编逆向系列】四、函数调用包含单个参数之Double类型-mmword,movsd,mulsd,addsd指令,总结汇编的数据类型

一、汇编代码 上一节开始&#xff0c;讲到了很多debug编译独有的汇编方式&#xff0c;为了更好的区分release的编译器优化和debug的区别&#xff0c;从本章节开始将会提供debug和release的汇编用作对比 Debugb编译 single_double_param:00000000000000A0: F2 0F 11 44 24 08…