1a69a01cdSopenharmony_ci# wukong部件
2a69a01cdSopenharmony_ci
3a69a01cdSopenharmony_ci## 简介
4a69a01cdSopenharmony_ci
5a69a01cdSopenharmony_ciOpenHarmony稳定性测试自动化工具,通过模拟用户行为,对OpenHarmony系统及应用进行稳定性压力测试。<br>
6a69a01cdSopenharmony_ci
7a69a01cdSopenharmony_ciwukong部件架构图<br>
8a69a01cdSopenharmony_ci![架构图](figures/wukong部件架构图.png)<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. 支持应用白、黑名单。