# scriptbuildtools
**Repository Path**: Ap680502/scriptbuildtools
## Basic Information
- **Project Name**: scriptbuildtools
- **Description**: 为支撑OpenHarmony操作系统的性能以及功能脚本的生成,我们向用户提供了符合功能需求并且可靠、易用的脚本生成工具。支持开发者针对应用进行相应的图片、控件信息采集以及功能、性能测试。
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-02-14
- **Last Updated**: 2023-02-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 脚本生成工具使用指导
## 概述
为支撑OpenHarmony操作系统的性能以及功能脚本的生成,我们向用户提供了符合功能需求并且可靠、易用的脚本生成工具。支持开发者针对应用进行相应的图片、控件信息采集以及功能、性能测试。
## 简介
脚本生成工具是一款基于OpenHarmony系统开发的生成脚本工具,操作简单易用,可提供包括图片、控件断言、性能、功能测试以及python、ts脚本的生成,包括提供应用当前界面的inspector树。
## 约束与限制
| uitest版本 | 支持能力 |
|:---------:|:-------------:|
| 3.2.4.0以后 | 支持记录离手速度和滑动步长 |
| 3.2.5.0以后 | 支持控件级录制 |
## 环境准备
### hdc配置
从每日构建的CI网站 (http://ci.openharmony.cn/dailys/dailybuilds)
获取hdc,并配置到环境变量。

配置到环境变量如下图。

### 安装JDK1.8以上版本
配置JDK系统环境变量,教程可参考(https://blog.csdn.net/Marvin_996_ICU/article/details/106240065)

### 烧录镜像
进入cmd,使用命令查看版本号。
```
hdc shell uitest --version
```

### 开启ArkUI调试开关
使用前需要先打开ArkUI调试开关,重启后生效。
```
hdc shell param set persist.ace.testmode.enabled 1
hdc shell param set persist.ace.debug.enabled 1
hdc shell reboot
```

## 操作说明
### 运行GUI界面
双击Test.jar或使用命令启动脚本生成工具界面。
```
java -jar Test.jar
```

### 开始录制
点击“开始录制”按键后,看到"Started Recording Successfully..."后即可开始录制用户操作,

工具左侧界面会生成相应的用户动作记录。

支持识别的动作包括:
| 支持的动作 |
|:-------------------------------------:|
| click 点击 |
| doubleClick 双击 |
| longClick 长按 |
| drag 拖拽 |
| swipe 滑动 |
| fling 抛滑 |
| 手势导航
(back 返回、Home 桌面、Recent 最近任务) |
### 添加注释
在每次操作后都可自行添加相应的注释来标注此操作为何种操作/操作的目的等

### 添加断言
Python脚本支持添加控件断言或图片断言;TS脚本仅支持控件断言;
在需要添加断言的应用界面,点击“添加断言”按钮,具体操作如下。

### 清除断言
如果错误添加了断言,可以点击清除断言,清除上一条断言。

### 结束并生成脚本
点击“结束并生成脚本”结束录制;可以自定义脚本保存的路径、脚本类名、脚本类型;默认输出路径为:D:\testPath,默认类名TestOH。

性能测试和功能测试的区别。
| 测试类型 | 测试类型含义 |
|:----:|:----------------:|
| 性能测试 | 通过坐标注入点击事件 |
| 功能测试 | 可以直接查找控件再进行相应的操作 |
在自定义文件夹下,生成的文件分别为:

## 脚本的使用
### py脚本使用
脚本运行方式包括两种,意识但脚本运行,另外一种是多脚本运行。
- 单脚本运行
- 新建main.py脚本,用于作为程序入口,拉起xDevice框架执行测试任务。
main.py的内容如下

配置启动参数为:run -l "测试用例的名称";配置步骤如下
```
run -l "TestOH"
```
- pycharm中新建启动项

- 配置参数,点击确认

- 最后点击pycharm中的运行即可

- 多脚本运行
有两种方法可以执行多条测试用例
- 1、用 run -l 命令,多个测试用例用分号进行分割。
```
run -l Test1;Test2;Test3;
```
- 2、定义测试套,运行某个文件夹下的所有测试用例,run xxx,如 run a
- 定义测试套名字:如a,在工程目录的config文件夹下新建a.json文件,内容如无特殊情况,默认为以下内容;


- 新建测试套文件夹a,如在工程的testcase目录下新建a文件夹

- 修改user_config.xml文件中的testcase标签中的dir标签,添加A文件夹测目录地址;

详情可参考 [xdevice组件的使用](https://gitee.com/openharmony/testfwk_xdevice/blob/master/README_zh.md#%E4%BD%BF%E7%94%A8)
### ts脚本使用
配置步骤如下
- DevEco Studio中新建Hvigor工程


- 配置参数,点击确认。
在Application parameters一栏中配置:hvigor assembleHap -m module -p module=entry@ohosTest -d;
```
hvigor assembleHap -m module -p module=entry@ohosTest -d
```
- 将生成的Ts脚本放入DevEco Studio工具中的ohosTest/ets/test目录下:

打开List.test.ets修改import testOH from './TestOH':

- 点击DevEco Studio中的运行
在build/default/outputs/ohosTest目录下生成entry-ohosTest-signed.hap测试用例包。


- 将生成的entry-ohosTest-signed.hap包与测试用例脚本放置同一目录下,双击运行脚本即可。

测试用例脚本代码内容如下
```
hdc shell hilog -r
hdc shell hilog -Q pidoff
hdc shell bm uninstall -n "hap包的bundlename"
hdc file send D:\ohos\entry-ohosTest-signed.hap /data/local/
hdc shell bm install -p /data/local/entry-ohosTest-signed.hap
hdc shell as test -p com.example.openharmonycomponents_test -b com.example.openharmonycomponents -s unittest OpenHarmonyTestRunner -s timeout 1500000
pause
```