一、功能介绍
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)执行却不是帮助命令,如下图。

