鸿蒙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)执行却不是帮助命令,如下图。