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