鸿蒙Harmony测试-wukong稳定性工具(类似Android的Monkey测试)

一、功能介绍

        wukong是系统自带的一种命令行工具,支持Ability的随机事件注入、控件注入、异常捕获、报告生成和对Ability数据遍历截图等特性。通过模拟用户行为,对系统或应用进行稳定性压力测试。wukong分为随机测试、专项测试和专注测试。

        随机测试是指随机测试界面内容,支持的能力包括:shell启动、拉起整机应用、多种注入方式、设置随机种子、打印运行日志和生成报告。

        专项测试主要提供对指定应用控件进行测试,支持的能力包括:shell启动、顺序遍历及截图、测试休眠睡醒、录制回放、打印运行日志和生成报告。

        专注测试主要提供对指定控件的注入测试,支持的能力包括:shell启动、拉起整机应用、多种注入方式、设置随机种子、设置专注控件类型、设置注入控件次数、打印运行日志和生成报告。

二、功能特性及命令说明 

前提约束: 

        鸿蒙终端设备需已连接到PC端,支持单个和多个设备。

          所有命令行执行前需要先进入shell模式

2.1 命令说明

命令

说明

version

获取wukong版本信息。

help

获取wukong帮助信息。

appinfo

查询支持拉起应用bundleName和对应的mainAbility名。

special

wukong专项测试。

exec

wukong随机测试。

focus

wukong专注测试。

2.2 进入shell模式     

 若为单设备,则直接输入如下命令进入shell模式

   若为多设备,则需先获取sn号,先输入hdc list targets获取sn号,然后进入shell模式

2.3 获取应用的bundle name和ability name

2.4 查看帮助命令

三、随机测试

3.1 命令参数

命令

功能

必选

说明

-c,--count

设置执行次数,与测试总时间-T冲突。二者取其一。

单位次数,默认10次。

-i,--interval

设置执行间隔。

单位ms,默认1500ms。

-s,--seed

设置随机种子。

配置相同随机种子,会生成相同随机事件序列。

-b,--bundle[bundlename,……,bundlename]

设置本次测试的允许应用名单,与-p冲突。

默认测试当前设备所有应用(应用名称用英文逗号隔开)。

-p,--prohibit[bundlename,……,bundlename]

设置本次测试的禁止应用名单,与-b冲突。

默认不禁止任何应用(应用名称用英文逗号隔开)。

-d,--page[page,……,page]

设置本次测试的禁止页面名单。

系统默认禁止pages/system页面(页面名称用逗号隔开)。

-a,--appswitch

设置应用随机拉起测试比例。

默认10%。

-t,--touch

设置屏幕随机触摸测试比例。

默认10%。

-S,--swap

设置屏幕随机移动测试比例。

默认3%。

-m,--mouse

设置屏幕随机鼠标测试比例。

默认1%。

-k,--keyboard

设置屏幕随机键盘操作测试比例。

默认2%。

-H,--hardkey

设置随机物理按键测试比例。

默认2%。

-r,--rotate

设置随机屏幕旋转测试比例。

默认2%。

-C, --component

设置随机控件测试比例。

默认70%。

-I, --screenshot

控件测试截图。

-

-T,--time

设置测试总时间,与设置执行次数-c冲突。二者取其一。

单位分钟,默认10分钟。

-e, --allow ability

设置允许测试的ability。

-

-E, --block ability

设置禁止测试的ability。

-

-Y, --blockCompId

设置不进行注入的CompId。

-

-y, --blockCompType

设置不进行注入的CompType。

-

-B, --checkBWScreen

设置启用黑白屏检测。

-

-U, -uri

设置应用拉起页面uri。

-

-x, -uriType

设置应用拉起页面uriType。

-

3.2 示例

3.2.1 指定应用测试

命令:wukong exec -b bundlename

3.2.2 设置允许测试和禁止测试的ability

命令:wukong exec -b bundlename -e bundlename.allowability -E bundlename.blockability

    注:若配置-e、-E则须配置-b来指定应用

四、专项测试

4.1 命令参数说明

命令

功能

必选

说明

-k, --spec_insomnia

休眠唤醒专项测试。

-

-c, --count

设置执行次数。

单位次数,默认10次。

-i, --interval

设置执行间隔。

单位ms,默认1500ms。

-S, --swap

滑动测试。

-

-s, --start[x,y]

设置滑动测试起点坐标。

坐标均为正值。

-e, --end[x,y]

设置滑动测试终点坐标。

坐标均为正值。

-b, --bilateral

设置往返滑动。

默认不往返滑动。

-t, --touch[x,y]

点击测试。

-

-T, --time

设置测试总时间。

单位分钟,默认10分钟。

-C, --component

控件顺序遍历测试。

需要设置测试应用名称。

-r, --record

录制。

需要指定录制文件。

-R, --replay

回放。

需要指定回放文件。

-p, --screenshot

控件测试截图。

-

4.2  示例

4.2.1 休眠唤醒专项测试

命令:wukong special -k -i 5000

4.2.2 指定应用的控件顺序遍历测试

命令:wukong special -C [bundlename] -p

五、专注测试

5.1 命令参数说明

命令

功能

必选

说明

-n,--numberfocus

设置每个控件注入的次数。

单位次数。

-f, --focustypes

设置需要专注的控件类型。

以英文逗号隔开。

-c,--count

设置执行次数,与设置执行时间-T冲突。二者取其一。

单位次数,默认10次。

-i,--interval

设置执行间隔。

单位ms,默认1500ms。

-s,--seed

设置随机种子。

配置相同随机种子,会生成相同随机事件序列。

-b,--bundle[bundlename,……,bundlename]

设置本次测试的允许应用名单,与-p冲突。

默认测试当前设备所有应用(应用名称用英文逗号隔开)。

-p,--prohibit[bundlename,……,bundlename]

设置本次测试的禁止应用名单,与-b冲突。

默认不禁止任何应用(应用名称用英文逗号隔开)。

-d,--page[page,……,page]

设置本次测试的禁止页面名单。

系统默认禁止pages/system页面(页面名称用逗号隔开)。

-a,--appswitch

设置应用随机拉起测试比例。

默认10%。

-t,--touch

设置屏幕随机触摸测试比例。

默认10%。

-S,--swap

设置屏幕随机移动测试比例。

默认3%。

-m,--mouse

设置屏幕随机鼠标测试比例。

默认1%。

-k,--keyboard

设置屏幕随机键盘操作测试比例。

默认2%。

-H,--hardkey

设置随机物理按键测试比例。

默认2%。

-r,--rotate

设置随机屏幕旋转测试比例。

默认2%。

-C, --component

设置随机控件测试比例。

默认70%。

-I, --screenshot

控件测试截图。

-

-T,--time

设置测试总时间,与设置执行次数-c冲突。二者取其一。

单位分钟,默认10分钟。

-e, --allow ability

设置允许测试的ability。

-

-E, --block ability

设置禁止测试的ability。

-

-Y, --blockCompId

设置不进行注入的CompId。

-

-y, --blockCompType

设置不进行注入的CompType。

-

-B, --checkBWScreen

设置启用黑白屏检测。

-

5.2 示例

5.2.1 随机拉起应用

命令:wukong focus -a 1 -T 2 -I

开始执行:

2分钟后,执行结束:

命令中各参数含义:

命令

参数值

说明

wukong focus

-

主命令。

-a

1

参数设置应用随机拉起测试比例100%。

-T

2

设置测试总时间,2分钟。与设置执行次数-c冲突。二者取其一。

-I

-

控件测试截图。

5.2.2  屏幕随机触摸测试

命令:wukong focus -s 10 -i 1500 -a 0.25 -t 0.75 -c 100

命令中各参数含义:

命令

参数值

说明

wukong focus

-

主命令。

-s

10

参数设置随机种子,10为种子值。

-i

1500

参数设置应用拉起间隔为1500ms。

-a

0.25

参数设置应用随机拉起测试比例25%。

-t

0.75

参数设置屏幕随机touch测试比例为75%。

-c

100

参数设置执行次数为100次。

5.2.2  

六、查看测试结果

   6.1 测试结果输出路径

   执行完测试指令后,会自动生成测试结果(文件夹格式:年月日_时分秒)

   测试结果输出根路径如下:

    /data/local/tmp/wukong/report/xxxxxxxx_xxxxxx/

6.2 测试报告文件目录

我们进入任意一个文件夹,查看其目录内容

类型

描述

exception/

存放本次测试产生的异常文件。

wukong_report.csv

测试报告统计汇总。

wukong.log

测试操作历程。

6.3 查看操作日志

wukong支持通过hdc命令将日志获取到本地,查看操作历程

我们可以用hdc file recv获取wukong日志到本地:

然后再使用Notepad++查看就非常方便了:

注:经多次验证在wukong 3.2.0.0版本上某些命令参数不对或者报错,比如wukong exec --help,正常情况下这个是帮助命令,但是我在Mate60上(API版本5.0.5)执行却不是帮助命令,如下图。

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

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

相关文章

从零学起VIM

前言 笔者早年刚入行的时候就接触过Vim,当时还是真正的菜鸟,带我的师父是一个华为骨干员工,犹记得他给我指导如何保存并关闭文本:按Esc,然后输入:wq。还记得自己打开Vim编辑器,一个字符都敲不进去,然后问旁…

不依赖rerank 模型排序通过使用 PostgreSQL 中的 pgvector 与 tsearch2 函数进行混合搜索提高召回率

前言 在向量搜索中,召回率是一个关键指标,它衡量搜索结果的相关性。然而,提高召回率往往会牺牲其他指标,如索引大小或查询延迟。为了平衡这些权衡,混合搜索技术应运而生。本文将介绍如何在 PostgreSQL 中结合 pgvecto…

Uniapp 跨平台开发框架全面解析:一次开发,多端运行

在移动互联网时代,开发者面临着一个重要挑战:如何高效地开发出能在多个平台(iOS、Android、Web、小程序等)上运行的应用?传统的原生开发方式需要为每个平台单独编写代码,导致开发周期长、维护成本高。而 Un…

ios如何把H5网页变成主屏幕webapp应用

一、将 H5 页面添加到主屏幕的步骤 打开 Safari 浏览器 在 iPhone 上打开 Safari 浏览器,访问目标网页(H5 页面)。 点击分享按钮 在 Safari 浏览器底部点击 “分享” 图标(箭头向上的按钮)。 添加到主屏幕 在分享菜单…

Node.js 项目启动命令大全 (形象版)

文章目录 Node.js 项目启动命令大全 🌟✨(形象版)一、🔍 如何查看项目启动命令(魔法书目录)package.json scripts 参数详解开发相关脚本测试相关脚本构建相关脚本代码质量相关脚本最佳实践 二、&#x1f68…

爱普特APT32F1104C8T6单片机 高抗干扰+硬件加密双保障

爱普特APT32F1104C8T6单片机深度解析 1. 产品定位 APT32F1104C8T6 是爱普特半导体(APT)推出的 32位高性能经济型单片机,基于 ARM Cortex-M0内核,采用 LQFP48封装,主打 高性价比、低功耗、强抗干扰,是替代进…

使用uni-app ios 打包流程

配置几个步骤即可 1、打包ios需要BundleID ID 2、证书私钥密码 3、信任文件证书文件 4、私钥证书 5、打包 6、获取打包后的ipa文件 7、通过爱思助手安装到iso手机上 8、完成 1、下载:App Uploader去获取我们想要的证书私钥等文件 2、下载完成解压后的文件如下打…

仿muduo库实现并发服务器

1.实现目标 仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器: 通过实现高并发服务器的组件,可以快速实现一个高并发服务器的搭建,并且,通过组内不同应用层协议的支持,可以快速完成高性能服务器的搭建…

迭代器模式:集合遍历的统一之道

引言:集合遍历的演进之路 在软件开发中,集合遍历是我们每天都要面对的基础操作。从最初的数组索引遍历到现代的流式处理,我们经历了: #mermaid-svg-KwTr9k8JgbwRTDhU {font-family:"trebuchet ms",verdana,arial,sans-…

Spring Security OAuth2 组件

我们来系统地讲解一下 Spring Security OAuth2 这个强大的组件。我会从概念、作用、核心组件,以及实际应用场景来为你剖析。 1. 什么是 Spring Security OAuth2? 简单来说,Spring Security OAuth2 是 Spring Security 框架的一个模块&#…

Redis的持久化功能

Redis的持久化功能能够将内存中的数据保存到磁盘,从而在重启后恢复数据。下面为你详细介绍Redis的两种主要持久化方式及其配置方法。 RDB(Redis Database)持久化 RDB持久化是通过生成某个时间点的数据集快照来实现的。它具有高性能的特点&a…

Chrome 将成为下一个 IE6

最近在技术圈刷到一个帖子,说:“Chrome 就快变成新的 IE6 了。” 乍一看有点危言耸听,但你一细品,发现还真挺像回事。 想当年:IE6 是怎么垮的? IE6 当年多风光?全球市场份额一度超过 90%&#…

Redis 配置文件详解redis.conf 从入门到实战

一、redis.conf 是什么? Redis 的配置文件(默认命名为 redis.conf,Redis 8.0 之后改为 redis-full.conf)控制着服务运行的各项参数。该文件采用以下结构: 指令名 参数1 参数2 ... 参数N例如: replicaof …

autoware docker的安装

前言 官方的安装说明: 官方的安装说明 安装前,请确认安装的硬件: CPU with 8 cores16GB RAM[Optional] NVIDIA GPU (4GB RAM) 满足需求 1. 安装软件依赖 这一步主要是安装三个软件: DockerNVIDIA Container Toolkit (pref…

AWS 解决方案深度剖析:Amazon QLDB — 构建可信赖、不可变的数据审计基石

导言:数据可信的挑战 在现代应用开发中,尤其是在金融、供应链、身份认证、政府事务、医疗记录管理等领域,数据完整性和历史追溯性至关重要。我们常常面临以下挑战: 审计困难: 如何证明数据从诞生至今未被篡改&#xf…

Leetcode-​1358. 包含所有三种字符的子字符串数目​

Problem: 1358. 包含所有三种字符的子字符串数目 思路 滑动窗口 解题过程 滑动窗口:使用左右指针 l 和 r 维护一个窗口,窗口内字符的频次由 cnt 记录。 右指针扩展:右指针 r 不断右移,将字符加入窗口并更新频率。 左指针收缩&a…

iTunes 无法备份 iPhone:10 种解决方法

Apple 设备是移动设备市场上最先进的产品之一,但有些人遇到过 iTunes 因出现错误而无法备份 iPhone 的情况。iTunes 拒绝备份 iPhone 时,可能会令人非常沮丧。不过,幸运的是,我们有 10 种有效的方法可以解决这个问题。您可以按照以…

Unity 接入抖音小游戏一

目录 一、搭建小游戏环境 二、接入抖音SDK 1.初始化 2.登录 3.分享 4.添加到桌面 5.侧边栏功能 6. 接入流量主 三、完整代码 下一篇传送门 Unity 接入抖音小游戏二 -CSDN博客 一、搭建小游戏环境 我这边因为没有下载其他版本的Unity所以就先用2022.3.57f1了 大家还是下载…

Node.js 项目启动命令全面指南:从入门到精通(术语版)

文章目录 Node.js 项目启动命令全面指南:从入门到精通一、核心启动命令深度解析1. 基础命令结构与执行机制2. 参数传递机制详解 二、常用命令分类详解1. 运行环境命令对比2. 质量保障命令详解3. 构建部署全流程 三、高级配置实战技巧1. 环境变量管理进阶2. 命令组合…

创意风格行业PPT模版分享

极简主题PPT模版,设计类PPT模版,快乐童年成长PPT模版,教育机构通用PPT模版,创意风格行业PPT模版 创意风格行业PPT模版分享:https://pan.quark.cn/s/3bac52e09479