鸿蒙 DevEco Testing:稳定性测试
·
稳定性是应用质量的核心指标。DevEco Testing提供了稳定性测试和内存泄漏测试两大测试服务,帮助检测应用崩溃、资源过载、内存泄漏等异常情况。
一、稳定性测试
根据应用稳定性建议,检测应用运行过程中是否存在应用崩溃、资源过载、内存泄漏等异常情况。
创建任务
| 配置项 | 说明 |
|---|---|
| 任务名称 | 默认时间生成,支持自定义 |
| 测试设备 | HarmonyOS 5.0+ |
| 选择应用 | 已安装应用或安装新应用(.hap/.zip) |
| 是否卸载应用 | 开启后测试卸载无残留检测,任务结束自动卸载 |
| 多线程检测 | 开启后检测多线程安全问题 |
| MemDebug模式 | 开启后检测内存越界类问题 |
建议:最佳测试时长建议设置为8小时。
控件黑名单
| 配置方式 | 说明 |
|---|---|
| 关键字 | 填写控件文字内容(如"购物车"、"我的订单") |
| XPath | 通过UIViewer工具或遍历地图获取控件XPath,最大支持30个 |
黑名单控件在遍历中不会进行操作,并在应用页面中置灰。
指定入口(可选)
| 配置项 | 说明 |
|---|---|
| DeepLink | 支持多个DeepLink,每次触发随机跳转其中一个 |
| 按固定概率切换 | 每次操作以指定概率随机选择执行一个DeepLink跳转 |
| 按固定周期切换 | 固定时间周期按顺序选择执行一个DeepLink跳转 |
测试报告
报告结构:
| 部分 | 内容 |
|---|---|
| 任务信息 | 应用信息、执行时长、环境参数 |
| 测试概览 | 结果统计、检测规则 |
| 检测详情 | 异常规则项可查看检测项概览、测试截图、问题列表 |
二、内存泄漏测试
2.1 设备准备
| 要求 | 说明 |
|---|---|
| 系统版本 | HarmonyOS 7.0+ |
| 设备状态 | 网络通畅、非高温、非低电量(>80%) |
| 锁屏设置 | 取消各类锁屏密码 |
| 应用图标 | 桌面可见 |
| 预置操作 | 权限授予、用户协议确认、账号登录 |
| 应用签名 | 待测试应用包需要调试证书签名 |
应用支持说明:
-
支持:ArkUI原生控件(含ReactNative)应用、Flutter 3.7.12+开发的应用
-
不支持:浏览器类应用、纯Web应用、其他三方自研框架自定义控件
注意:若应用具备监听截图并展示功能,建议在测试前关闭该功能模块。
2.2 任务创建
模式选择:
| 模式 | 说明 |
|---|---|
| 自主遍历 | 服务可自主探索遍历应用 |
| 自定义场景 | 需自行操作应用进行测试 |
测试时长:
| 模式 | 默认时长 | 范围 |
|---|---|---|
| 自主遍历 | 10小时 | 10分钟 ~ 10080分钟 |
| 自定义场景 | 1小时 | 10分钟 ~ 10080分钟 |
磁盘空间:预估每小时任务需要2G磁盘空间,不足时会给出提示。
2.3 高级配置(仅自主遍历)
控件黑名单:
-
关键字:控件text属性值,最大30个
-
XPath:通过UIViewer或遍历图谱获取,最大30个
图谱选择:根据所选应用选择在图谱管理工具中定义的图谱。
黑名单选择:根据所选图谱选择在黑名单管理工具中定义的黑名单控件。
指定入口:
| 配置项 | 说明 |
|---|---|
| DeepLink | 支持多个,每次触发随机跳转其中一个 |
| 按固定概率切换 | 每次操作以指定概率随机选择执行一个DeepLink跳转 |
| 按固定周期切换 | 固定时间周期按顺序选择执行一个DeepLink跳转 |
2.4 任务执行
自主遍历模式:
| 显示内容 | 说明 |
|---|---|
| 进度 | 任务整体进度 |
| 测试场景 | 当前操作场景名称 |
| 检测结果统计 | 实时统计内存泄漏问题 |
| 日志 | 实时打印测试过程日志 |
自定义场景模式:
| 功能 | 说明 |
|---|---|
| 应用内存占用 | 实时监控并可视化应用内存动态变化 |
| 场景开始 | 定义监控场景名称和执行时长,开始后启动内存数据抓取 |
| 调用信息 | 实时呈现各场景下内存泄漏问题及对应代码调用栈 |
| GC按钮 | 执行hidumper --mem-jsheap pid --gc命令触发GC |
| 结束采集 | 终止监控任务,等待剩余场景分析完成后生成报告 |
2.5 测试报告
基础信息:
-
任务数据(名称、开始时间、持续时间、执行人)
-
应用数据(包名、版本、API版本)
-
环境参数、执行日志(支持日志级别筛选)
自主遍历概览:
| 指标 | 说明 |
|---|---|
| 遍历执行时长 | 本次测试遍历操作总时长 |
| 覆盖场景数 | 遍历过程中触发的场景数量 |
| 问题场景数 | 存在内存泄漏问题的场景数量 |
| 内存泄漏问题总数 | 内存泄漏问题总数 |
自定义场景:
| 指标 | 说明 |
|---|---|
| 场景监控时长 | 所有场景使用总时长 |
| 覆盖场景数 | 监控过程中触发的场景数量 |
| 问题场景数 | 存在内存泄漏问题的场景数量 |
| 内存泄漏问题总数 | 内存泄漏问题总数 |
资源数据(内存指标):
| 指标 | 说明 |
|---|---|
| TotalMem | 应用占用的整体物理内存 |
| GLMem | 应用占用的GPU内存 |
| GraphMem | 应用占用的图形内存 |
| ArkTsMem | 应用占用的ArkTS内存 |
| NativeMem | 应用占用的Native内存 |
| AnnoPageMem | 应用占用的匿名页内存 |
| FilePageMem | 应用占用的文件页内存 |
| AshMem | 应用占用的AshMem |
| StackMem | 进程使用的栈内存 |
| AvailbleMem | 整机可用内存 |
| FreeMem | 整机空闲内存 |
三、其他
3.1 稳定性测试对比
| 测试类型 | 适用场景 | 测试方式 | 核心检测 |
|---|---|---|---|
| 稳定性基础质量测试 | 长时间稳定性检测 | 自动化遍历 | 崩溃、资源过载、内存泄漏 |
| 内存泄漏测试 | 内存专项检测 | 自主遍历/自定义场景 | 内存泄漏、内存增长 |
3.2 内存泄漏测试模式对比
| 模式 | 操作方式 | 适用场景 | 高级配置 |
|---|---|---|---|
| 自主遍历 | 自动探索 | 长时间内存检测 | 支持(控件黑名单/DeepLink) |
| 自定义场景 | 手动操作 | 指定场景监控 | 不支持 |
更多推荐


所有评论(0)