1a69a01cdSopenharmony_ci# wukong部件 2a69a01cdSopenharmony_ci 3a69a01cdSopenharmony_ci## 简介 4a69a01cdSopenharmony_ci 5a69a01cdSopenharmony_ciOpenHarmony稳定性测试自动化工具,通过模拟用户行为,对OpenHarmony系统及应用进行稳定性压力测试。<br> 6a69a01cdSopenharmony_ci 7a69a01cdSopenharmony_ciwukong部件架构图<br> 8a69a01cdSopenharmony_ci<br> 9a69a01cdSopenharmony_ci 10a69a01cdSopenharmony_ci部件内子模块职责:<br> 11a69a01cdSopenharmony_ci1. 命令行解析:支持命令行获取参数并解析命令行参数。<br> 12a69a01cdSopenharmony_ci2. 运行环境管理:根据命令行初始化wukong整体运行环境。<br> 13a69a01cdSopenharmony_ci3. 系统接口管理:检查并获取指定的mgr,注册controller和dfx的faultlog的回调函数。<br> 14a69a01cdSopenharmony_ci4. 随机事件生成:通过random函数生成指定种子数的随机序列,生成事件。<br> 15a69a01cdSopenharmony_ci5. 事件注入:根据支持的事件类型向系统注入事件,依赖窗口、多模、安全等子系统。<br> 16a69a01cdSopenharmony_ci6. 异常捕获处理/报告生成:通过DFX子系统获取运行中的异常信息并记录log,生成报告。<br> 17a69a01cdSopenharmony_ci 18a69a01cdSopenharmony_ci## 目录 19a69a01cdSopenharmony_ci 20a69a01cdSopenharmony_ci``` 21a69a01cdSopenharmony_ci├── wukong # wukong主要代码文件 22a69a01cdSopenharmony_ci| └── common # 提供应用管控能力,随机事件注入能力,多模事件注入能力 23a69a01cdSopenharmony_ci| └── component_event # 定义ability、page、Component树,提供添加节点、遍历树、依据NodeId查找子节点等能力 24a69a01cdSopenharmony_ci| └── input_factory # 实现屏幕点击、滑动、拖拽、键盘等事件注入能力 25a69a01cdSopenharmony_ci| └── report # 监听异常信息,对其进行收集、统计、显示功能 26a69a01cdSopenharmony_ci| └── shell_command # 用来创建命令行map,解析命令行参数并执行命令行 27a69a01cdSopenharmony_ci| └── test_flow 28a69a01cdSopenharmony_ci│ └── include # 定义头文件 29a69a01cdSopenharmony_ci│ └── src 30a69a01cdSopenharmony_ci│ ├── random_test_flow.cpp # 继承TestFlow,是随机测试的执行流 31a69a01cdSopenharmony_ci│ ├── special_test_flow.cpp # 继承TestFlow,是顺序专项测试的执行流 32a69a01cdSopenharmony_ci│ ├── focus_test_flow.cpp # 继承TestFlow,是专注测试的执行流 33a69a01cdSopenharmony_ci│ ├── test_flow.cpp # 检查命令行参数是否符合规范 34a69a01cdSopenharmony_ci│ ── BUILD.gn # 存放wukong构建的配置,具体包括构建对象、方式、依赖、硬件架构、文件格式 35a69a01cdSopenharmony_ci│ ── README_zh.md # readme文件 36a69a01cdSopenharmony_ci``` 37a69a01cdSopenharmony_ci 38a69a01cdSopenharmony_ci## 约束 39a69a01cdSopenharmony_ci 40a69a01cdSopenharmony_ci1. wukong在3.2系统版本后开始预置使用。<br> 41a69a01cdSopenharmony_ci2. wukong在3.2系统版本之前的版本不随版本编译,使用时需自行编译后推送至被测OpenHarmony设备,步骤如下: 42a69a01cdSopenharmony_ci 2.1. 构建方式 43a69a01cdSopenharmony_ci ``` 44a69a01cdSopenharmony_ci ./build.sh --product-name rk3568 --build-target wukong 45a69a01cdSopenharmony_ci ``` 46a69a01cdSopenharmony_ci 2.2. 推送方式 47a69a01cdSopenharmony_ci ``` 48a69a01cdSopenharmony_ci hdc_std shell mount -o rw,remount / 49a69a01cdSopenharmony_ci hdc_std file send wukong / 50a69a01cdSopenharmony_ci hdc_std shell chmod a+x /wukong 51a69a01cdSopenharmony_ci hdc_std shell mv /wukong /bin/ 52a69a01cdSopenharmony_ci ``` 53a69a01cdSopenharmony_ci 54a69a01cdSopenharmony_ci## 使用说明 55a69a01cdSopenharmony_ci 56a69a01cdSopenharmony_ci### 功能特性及命令说明 57a69a01cdSopenharmony_ci 58a69a01cdSopenharmony_ci 59a69a01cdSopenharmony_ci| 命令 | 说明 | 备注 | 60a69a01cdSopenharmony_ci| -------------- | ---------------------------------------------- | ------------- | 61a69a01cdSopenharmony_ci| version | 获取wukong版本信息。 | -v, --version。 | 62a69a01cdSopenharmony_ci| help | 获取wukong帮助信息。 | | 63a69a01cdSopenharmony_ci| appinfo | 查询支持拉起应用bundleName和对应的mainAbility名。 | | 64a69a01cdSopenharmony_ci| special | wukong专项测试。 | | 65a69a01cdSopenharmony_ci| exec | wukong随机测试。 | | 66a69a01cdSopenharmony_ci| focus | wukong专注测试。 | | 67a69a01cdSopenharmony_ci 68a69a01cdSopenharmony_ci 69a69a01cdSopenharmony_ci### wukong special描述 70a69a01cdSopenharmony_ci 71a69a01cdSopenharmony_ci| 命令 | 功能 | 必选 | 备注 | 72a69a01cdSopenharmony_ci| :------------------ | ---------------------- | ---- | :------------------ | 73a69a01cdSopenharmony_ci| -h, --help | 获取当前测试的帮助信息。 | 否 | 专项测试帮助信息。 | 74a69a01cdSopenharmony_ci| -k, --spec_insomnia | 休眠唤醒专项测试。 | 否 | - | 75a69a01cdSopenharmony_ci| -c, --count | 设置执行次数。 | 否 | 默认10次。 | 76a69a01cdSopenharmony_ci| -i, --interval | 设置执行间隔。 | 否 | 单位ms,默认1500ms。 | 77a69a01cdSopenharmony_ci| -S, --swap | 滑动测试。 | 否 | - | 78a69a01cdSopenharmony_ci|-s, --start[x,y] | 设置滑动测试起点坐标。 | 否 | - | 79a69a01cdSopenharmony_ci| -e, --end[x,y] | 设置滑动测试终点坐标。 | 否 | - | 80a69a01cdSopenharmony_ci| -b, --bilateral | 设置往返滑动。 | 否 | 默认不往返滑动。 | 81a69a01cdSopenharmony_ci| -t, --touch[x,y] | 点击测试。 | 否 | - | 82a69a01cdSopenharmony_ci| -T, --time | 设置测试总时间。 | 否 | 单位分钟,默认10分钟。 | 83a69a01cdSopenharmony_ci| -C, --component | 控件顺序遍历测试。 | 否 | 需要设置测试应用名称。 | 84a69a01cdSopenharmony_ci| -r, --record | 录制。 | 否 | 需要指定录制文件。 | 85a69a01cdSopenharmony_ci| -R, --replay | 回放。 | 否 | 需要指定回放文件。 | 86a69a01cdSopenharmony_ci| -p, --screenshot | 控件测试截图。 | 否 | - | 87a69a01cdSopenharmony_ci 88a69a01cdSopenharmony_ci#### wukong special 专项测试使用示例 89a69a01cdSopenharmony_ci 90a69a01cdSopenharmony_ci```bash 91a69a01cdSopenharmony_ci 92a69a01cdSopenharmony_ci> hdc_std shell 93a69a01cdSopenharmony_ci# wukong special -C [bundlename] -p 94a69a01cdSopenharmony_ci 95a69a01cdSopenharmony_ci``` 96a69a01cdSopenharmony_ci 97a69a01cdSopenharmony_ci专项测试示例解析: 98a69a01cdSopenharmony_ci| 命令 | 参数值 | 说明 | 99a69a01cdSopenharmony_ci| -------------- |-------------- | ---------------------------------------------- | 100a69a01cdSopenharmony_ci| wukong special | | 主命令。 | 101a69a01cdSopenharmony_ci| -C [bundlename] |[bundlename] | 控件顺序遍历测试参数设置,bundlename为测试应用名称。 | 102a69a01cdSopenharmony_ci| -p | | 表示截图。 | 103a69a01cdSopenharmony_ci 104a69a01cdSopenharmony_ci### wukong random描述 105a69a01cdSopenharmony_ci 106a69a01cdSopenharmony_ci| 命令 | 功能 | 必选 | 备注 | 107a69a01cdSopenharmony_ci| --------------- | ------------------------------------ | ---- | ---------------------------------------- | 108a69a01cdSopenharmony_ci| -h,--help | 获取当前测试的帮助信息。 | 否 | 随机测试帮助信息。 | 109a69a01cdSopenharmony_ci| -c,--count | 设置执行次数,与-T冲突。 | 否 | 单位次数,默认10次。 | 110a69a01cdSopenharmony_ci| -i,--interval | 设置执行间隔。 | 否 | 单位ms,默认1500ms。 | 111a69a01cdSopenharmony_ci| -s,--seed | 设置随机种子。 | 否 | 配置相同随机种子,会生成相同随机事件序列。 | 112a69a01cdSopenharmony_ci| -b,--bundle[bundlename,……,bundlename] | 设置本次测试的允许应用名单,与-p冲突。 | 否 | 默认测试当前设备所有应用(应用名称用逗号隔开)。 | 113a69a01cdSopenharmony_ci| -p,--prohibit[bundlename,……,bundlename] | 设置本次测试的禁止应用名单,与-b冲突。 | 否 | 默认不禁止任何应用(应用名称用逗号隔开)。 | 114a69a01cdSopenharmony_ci| -d,--page[page,……,page] | 设置本次测试的禁止页面名单 | 否 | 系统默认禁止pages/system页面(页面名称用逗号隔开)。 | 115a69a01cdSopenharmony_ci| -e,--allow[ability,……,ability] | 设置本次测试的允许ability页面 | 否 | 若配置此参数,需同时增加-b参数来限定应用 | 116a69a01cdSopenharmony_ci| -E,--block[ability,……,ability] | 设置本次测试的禁止ability页面 | 否 | 若配置此参数,需同时增加-b参数来限定应用 | 117a69a01cdSopenharmony_ci| -a,--appswitch | 设置应用随机拉起测试比例。 | 否 | 默认10%。 | 118a69a01cdSopenharmony_ci| -t,--touch | 设置屏幕随机touch测试比例。 | 否 | 默认10%。 | 119a69a01cdSopenharmony_ci| -S,--swap | 设置屏幕随机swap测试比例。 | 否 | 默认3%。 | 120a69a01cdSopenharmony_ci| -m,--mouse | 设置屏幕随机mouse测试比例。 | 否 | 默认1%。 | 121a69a01cdSopenharmony_ci| -k,--keyboard | 设置屏幕随机keyboard测试比例。 | 否 | 默认2%。 | 122a69a01cdSopenharmony_ci| -H,--hardkey | 设置随机hardkey测试比例。 | 否 | 默认2%。 | 123a69a01cdSopenharmony_ci| -r,--rotate | 设置随机rotate测试比例。 | 否 | 默认2%。 | 124a69a01cdSopenharmony_ci| -C, --component | 设置随机控件测试比例。 | 否 | 默认70%。 | 125a69a01cdSopenharmony_ci| -I, --screenshot | 控件测试截图。 | 否 | - | 126a69a01cdSopenharmony_ci| -T,--time | 设置测试总时间,与-c冲突。 | 否 | 单位分钟,默认10分钟。 | 127a69a01cdSopenharmony_ci| -U, -uri | 设置应用拉起页面uri | 否 | - | 128a69a01cdSopenharmony_ci| -x, -uriType | 设置应用拉起页面uriType | 否 | - | 129a69a01cdSopenharmony_ci 130a69a01cdSopenharmony_ci> 说明:配置相同随机种子,会生成相同随机事件序列 131a69a01cdSopenharmony_ci 132a69a01cdSopenharmony_ci#### wukong exec 随机测试使用示例 133a69a01cdSopenharmony_ci 134a69a01cdSopenharmony_ci##### 1.wukong随机测试 135a69a01cdSopenharmony_ci 136a69a01cdSopenharmony_ci```bash 137a69a01cdSopenharmony_ci> hdc_std shell 138a69a01cdSopenharmony_ci# wukong exec -s 10 -i 1000 -a 0.28 -t 0.72 -c 100 139a69a01cdSopenharmony_ci``` 140a69a01cdSopenharmony_ci 141a69a01cdSopenharmony_ci随机测试示例解析: 142a69a01cdSopenharmony_ci| 命令 | 参数值 | 说明 | 143a69a01cdSopenharmony_ci| -------------- | -------------- | ---------------------------------------------- | 144a69a01cdSopenharmony_ci| wukong exec | | 主命令。 | 145a69a01cdSopenharmony_ci| -s | 10 | 参数设置随机种子,10为种子值。 | 146a69a01cdSopenharmony_ci| -i | 1000 | 参数设置应用拉起间隔,1000单位ms。 | 147a69a01cdSopenharmony_ci| -a | 0.28 | 参数设置应用随机拉起测试比例28%。 | 148a69a01cdSopenharmony_ci| -t | 0.72 | 参数设置屏幕随机touch测试比例为72%。 | 149a69a01cdSopenharmony_ci| -c | 100 | 参数设置执行次数为100次。 | 150a69a01cdSopenharmony_ci 151a69a01cdSopenharmony_ci##### 2.wukong指定页面压测 152a69a01cdSopenharmony_ci 153a69a01cdSopenharmony_ci> 显示启动 154a69a01cdSopenharmony_ci 155a69a01cdSopenharmony_ci```bash 156a69a01cdSopenharmony_ci> hdc_std shell 157a69a01cdSopenharmony_ci# wukong exec -b bundlename -a abilityname -U uri 158a69a01cdSopenharmony_ci``` 159a69a01cdSopenharmony_ci 160a69a01cdSopenharmony_ci随机测试示例解析: 161a69a01cdSopenharmony_ci| 命令 | 参数值 | 说明 | 162a69a01cdSopenharmony_ci| --------------- | -------------- | ---------------------------------------------- | 163a69a01cdSopenharmony_ci| wukong exec | | 主命令。 | 164a69a01cdSopenharmony_ci| -b | bundlename | 参数设置指定bundlename | 165a69a01cdSopenharmony_ci| -a | abilityname | 参数设置指定abilityname | 166a69a01cdSopenharmony_ci| -U | uri | 参数设置应用拉起页面uri | 167a69a01cdSopenharmony_ci 168a69a01cdSopenharmony_ci> 隐式启动 169a69a01cdSopenharmony_ci 170a69a01cdSopenharmony_ci```bash 171a69a01cdSopenharmony_ci> hdc_std shell 172a69a01cdSopenharmony_ci# wukong exec -b bundlename -U uri -x uriType 173a69a01cdSopenharmony_ci``` 174a69a01cdSopenharmony_ci 175a69a01cdSopenharmony_ci随机测试示例解析: 176a69a01cdSopenharmony_ci| 命令 | 参数值 | 说明 | 177a69a01cdSopenharmony_ci| --------------- | -------------- | ---------------------------------------------- | 178a69a01cdSopenharmony_ci| wukong exec | | 主命令。 | 179a69a01cdSopenharmony_ci| -b | bundlename | 参数设置指定bundlename | 180a69a01cdSopenharmony_ci| -U | uri | 参数设置应用拉起页面uri | 181a69a01cdSopenharmony_ci| -x | uriType | 参数设置应用拉起页面uriType | 182a69a01cdSopenharmony_ci 183a69a01cdSopenharmony_ci##### 2.wukong允许ability页面、禁止ability页面 184a69a01cdSopenharmony_ci 185a69a01cdSopenharmony_ci```bash 186a69a01cdSopenharmony_ci> hdc_std shell 187a69a01cdSopenharmony_ci# wukong exec -b com.ohos.settings -e com.ohos.settings.MainAbility -E com.ohos.settings.AppInfoAbility 188a69a01cdSopenharmony_ci``` 189a69a01cdSopenharmony_ci 190a69a01cdSopenharmony_ci随机测试示例解析: 191a69a01cdSopenharmony_ci| 命令 | 参数值 | 说明 | 192a69a01cdSopenharmony_ci| -------------- | -------------- | ---------------------------------------------- | 193a69a01cdSopenharmony_ci| wukong exec | | 主命令。 | 194a69a01cdSopenharmony_ci| -b | com.ohos.settings | 设置本次测试的允许应用名单 | 195a69a01cdSopenharmony_ci| -e | com.ohos.settings.MainAbility | 设置本次测试的允许ability页面 | 196a69a01cdSopenharmony_ci| -E | com.ohos.settings.AppInfoAbility | 设置本次测试的禁止ability页面 | 197a69a01cdSopenharmony_ci 198a69a01cdSopenharmony_ci> 说明:若配置-e、-E则必须配置-b参数来指定应用 199a69a01cdSopenharmony_ci 200a69a01cdSopenharmony_ci### wukong focus描述 201a69a01cdSopenharmony_ci 202a69a01cdSopenharmony_ci| 命令 | 功能 | 必选 | 备注 | 203a69a01cdSopenharmony_ci| --------------- | ------------------------------------ | ---- | ---------------------------------------- | 204a69a01cdSopenharmony_ci| -n,--numberfocus | 设置每个控件注入的次数。 | 否 | | 205a69a01cdSopenharmony_ci| -f, --focustypes | 设置需要专注的控件类型。 | 否 | 以英文逗号隔开。 | 206a69a01cdSopenharmony_ci其余参数继承自exec。 207a69a01cdSopenharmony_ci 208a69a01cdSopenharmony_ci## 版本说明 209a69a01cdSopenharmony_ci 210a69a01cdSopenharmony_ci3.2.0.0 版本发布内容:预置wukong,支持以下功能:<br> 211a69a01cdSopenharmony_ci1. 支持整机应用拉起、设置随机种子、设置应用拉起间隔、设置应用拉起次数、支持查询应用拉起bundle名和ability名。<br> 212a69a01cdSopenharmony_ci2. 支持随机注入事件、支持随机注入控件、支持休眠唤醒专项测试、支持控件顺序遍历截图专项测试。<br> 213a69a01cdSopenharmony_ci3. 支持wukong运行日志打印。<br> 214a69a01cdSopenharmony_ci4. 支持应用白、黑名单。