OpenHarmony开发者论坛

标题: DevEco Testing使用入门 [打印本页]

作者: kenneth    时间: 2023-11-2 08:54
标题: DevEco Testing使用入门
[md]# DevEco Testing使用入门

## DevEco Testing简介

DevEco Testing是OpenHarmony生态整机测试能力中心,为生态合作伙伴接入OpenHarmony生态提供专业测试服务。支持的测试类型包含:稳定性测试、安全测试、性能功耗测试、音视频测试、兼容性测试、分布式测试等,还提供了一些实用工具,比如UI Viewer、设备投屏、Trace解析等。

## DevEco Testing安装

访问[DevEco Testing](https://devecotesting.huawei.com/userPortal/)网站,点击客户端下载,选择DevEco Testing for Device工具下载即可。按照安装向导完成安装。
![1.png](data/attachment/forum/202311/02/085415gsn7xjmtonok53x5.png "1.png")

下文主要介绍下实用的工具UI Viewer。

## UI Viewer工具

### UI Viewer工具介绍

实用UI Viewer工具,可以获取页面的DOM树,方便编写自动化测试用例。可以从实用工具中找到UI Viewer的入口,如图:
![2.png](data/attachment/forum/202311/02/085424e9oioaot3glz79v2.png "2.png")

UI Viewer可以获取应用的界面组件的坐标,组件id,text等各种属性信息,可以用于UI自动化测试。

进入UI Viewer,设备连接到电脑上,选择连接的设备SN。启动需要测试的应用,进入需要自动化测试的页面,在工具上点击相应的组件,即可在右侧显示该组件的属性信息。如下图,Calculate By Tasktoop按钮的被点击的这个点的坐标为[722,1497]。
![3.png](data/attachment/forum/202311/02/085433hctyu6jtt65uv6jl.png "3.png")

### 使用命令uinput模拟屏幕触摸

上文获取了界面上按钮上的一个坐标点,通过点击这个点就可以触发按钮的点击事件。那么,如何使用命令来模拟触发这次点击呢?

我们可以使用uinput命令,对于上述问题,完整的命令如下:

```shell
hdc shell uinput -T -c 722 1497 450
```

其中,-T表示touch屏幕触摸,-c表示click点击。uinput支持鼠标输入、键盘输入、触摸输入、指关节输入更多信息请参考命令行uinput的帮助信息,如下:

```shell
# uinput --help
Usage: uinput <option> <command> <arg>...
The option are:
-M  --mouse
commands for mouse:
-m <dx> <dy>              --move   <dx> <dy>  -move to relative position (dx,dy),
   <dx1> <dy1> <dx2> <dy2> [smooth time] --trace -dx1 dy1 to dx2 dy2 smooth movement
-d <key>                  --down   key        -press down a button,
                                               0 is the left button, 1 is the right,
                                               2 is the middle
-u <key>                  --up     <key>      -release a button
-c <key>                  --click  <key>      -press the left button down,then raise
-b <dx1> <dy1> <id> [press time] [click interval time]                --double click
  [press time] the time range is more than 1ms but less than 300ms,
  [click interval time] the time range is more than 1ms but less than 450ms,
  Otherwise the operation result may produce error or invalid operation
-press the left button down,then raise
   key value:0 - button left
   key value:1 - button right
   key value:2 - button middle
   key value:3 - button side
   key value:4 - button extra
   key value:5 - button forward
   key value:6 - button back
   key value:7 - button task
-s <key>                  --scroll <key>      -positive values are sliding backwards
-g <dx1> <dy1> <dx2> <dy2> [total time]       --drag <dx1> <dy1> <dx2> <dy2> [total time],
                                              dx1 dy1 to dx2 dy2 smooth drag
-i <time>                 --interval <time>   -the program interval for the (time) milliseconds
                                               negative values are sliding forwards

-K  --keyboard
commands for keyboard:
-d <key>                   --down   <key>     -press down a key
-u <key>                   --up     <key>     -release a key
-l <key> [long press time] --long_press <key> [long press time] -press and hold the key
-i <time>                  --interval <time>  -the program interval for the (time) milliseconds

-T  --touch
commands for touch:
-d <dx1> <dy1>             --down   <dx1> <dy1> -press down a position  dx1 dy1,
-u <dx1> <dy1>             --up     <dx1> <dy1> -release a position dx1 dy1,
-m <dx1> <dy1> <dx2> <dy2> [smooth time]      --smooth movement
   <dx1> <dy1> <dx2> <dy2> [smooth time]      -smooth movement,
                                              dx1 dy1 to dx2 dy2 smooth movement
-c <dx1> <dy1> [click interval]               -touch screen click dx1 dy1
-k --knuckle
commands for knucle:
-s <dx1> <dy1> <dx2> <dy2> [interval time]  --single knuckle double click interval time
-d <dx1> <dy1> <dx2> <dy2> [interval time]  --double knuckle double click interval time
-i <time>                  --interval <time>  -the program interval for the (time) milliseconds
-g <dx1> <dy1> <dx2> <dy2> [press time] [total time]     -drag,
  [Press time] not less than 500ms and [total time] - [Press time] not less than 500ms
  Otherwise the operation result may produce error or invalid operation

-?  --help
```

## 参考资料

[DevEco Testing](https://devecotesting.huawei.com/userPortal/)

[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5