1# xdevice组件<a name="ZH-CN_TOPIC_0000001083129731"></a> 2 3- [简介](#section15701932113019) 4- [目录](#section1791423143211) 5- [约束](#section118067583303) 6- [使用](#section2036431583) 7- [相关仓](#section260848241) 8 9## 简介<a name="section15701932113019"></a> 10 11xdevice是OpenHarmony中为测试框架的核心组件,提供用例执行所依赖的相关服务。 12 13xdevice主要包括以下几个主要模块: 14 15- command,用户与测试平台命令行交互模块,提供用户输入命令解析,命令处理。 16- config,测试框架配置模块,提供测试平台串口连接方式和USB连接方式的不同配置选项。 17- driver,测试用例执行器,提供测试用例分发,执行,结果收集等主要测试步骤定义。 18- report,测试报告模块,提供测试结果解析和测试报告生成。 19- scheduler,测试框架调度模块,提供不同类型的测试执行器调度的调度功能。 20- environment,测试框架的环境配置模块,提供设备发现,设备管理的功能。 21- testkit,测试框架工具模块,提供json解析,网络文件挂载等操作。 22- resource,测试框架资源模块,提供设备连接配置文件和报告模板定义。 23 24## 目录<a name="section1791423143211"></a> 25 26``` 27xdevice 28├── config # xdevice组件配置 29│ ├── user_config.xml # xdevice环境配置 30├── resource # xdevice组件资源 31│ ├── tools # 版本烧录工具 32├── src # 组件源码目录 33│ ├── xdevice 34├── extension # xdevice扩展模块 35│ ├── src # 扩展模块源码 36│ └── setup.py # xdevice扩展模块安装脚本 37``` 38 39## 约束<a name="section118067583303"></a> 40 41运行环境要求: 42 43- python版本\>=3.7.5 44- pyserial\>=3.3 45- paramiko\>=2.7.1 46- rsa\>=4.0 47 48## 使用<a name="section2036431583"></a> 49 50- **安装xdevice** 51 1. 打开xdevice安装目录。 52 2. 打开控制台,执行如下命令: 53 54 ``` 55 python setup.py install 56 ``` 57 58 59- **安装extension** 60 1. 打开extension安装目录。 61 2. 打开控制台,执行如下命令: 62 63 ``` 64 python setup.py install 65 ``` 66 67 68- **修改user\_config.xml** 69 70 user\_config.xml是框架提供的用户配置文件,用户可以根据自身环境信息配置相关内容,具体介绍如下: 71 72 **1、environment环境相关配置:** 73 74 - 设备类型一 75 76 > **说明:** 77 >ip/port: 表示远程设备地址,默认情况为空,表示使用本地设备,ip地址为127.0.0.1,port为本机hdc启动端口号; 78 >sn: 过滤执行测试设备,若设置为SN1,则表示只有设备SN1能够支持后续run命令执行,其他设备分配状态设置为Ignored,不参与命令执行,可通过list devices命令中Allocation字段来查看sn设置,可配置多个sn,中间以;隔开; 79 80 - 设备类型二 81 82 > **说明:** 83 >type: 设备连接方式,com表示连接方式是串口 84 >label: 表示设备种类,如wifiiot 85 >serial: 表示一个串口定义 86 >serial/com 表示本地连接的串口,如COM20 serial/type 表示串口类型,cmd是命令串口,deploy是刷机串口,社区版本cmd和deploy使用同一个串口,com值相同 87 >serial/baud\_rate、data\_bits、stop\_bits、timeout: 为串口波特率等串口参数 ,一般采用默认值即可。 88 89 90 **2、测试用例目录设置** 91 92 dir: 指定测试用例目录。 93 94 **3、nfs挂载** 95 96 > **说明:** 97 >server: nfs挂载配置,label取值为NfsServer。 98 >server/ip: 挂载环境IP地址。 99 >server/port: 挂载环境端口。 100 >server/username: 登录用户名。 101 >server/password: 登录用户密码。 102 >server/dir: 对应挂载的外部路径。 103 >server/remote: nfs服务器与xDevice执行机不在同一台机器时,remote配置为true,否则为false。 104 105- **选定任务类型** 106- **启动框架** 107- **执行指令** 108 109 框架指令可以分为三组:help、list、run。在指令序列中,以run为最常用的执行指令。 110 111 **1、help** 112 113 输入help指令可以查询框架指令帮助信息。 114 115 ``` 116 help: 117 use help to get information. 118 usage: 119 run: Display a list of supported run command. 120 list: Display a list of supported device and task record. 121 Examples: 122 help run 123 help list 124 ``` 125 126 > **说明:** 127 >help run:展示run指令相关说明 128 >help list:展示 list指令相关说明 129 130 **2、list** 131 132 list指令用来展示设备和相关的任务信息 133 134 ``` 135 list: 136 This command is used to display device list and task record. 137 usage: 138 list 139 list history 140 list <id> 141 Introduction: 142 list: display device list 143 list history: display history record of a serial of tasks 144 list <id>: display history record about task what contains specific id 145 Examples: 146 list 147 list history 148 list 6e****90 149 ``` 150 151 > **说明:** 152 >list: 展示设备信息 153 >list history: 展示任务历史信息 154 >list <id\>: 展示特定id的任务其历史信息 155 156 **3、run** 157 158 run指令主要用于执行测试任务 159 160 ``` 161 run: 162 This command is used to execute the selected testcases. 163 It includes a series of processes such as use case compilation, execution, and result collection. 164 usage: run [-l TESTLIST [TESTLIST ...] | -tf TESTFILE 165 [TESTFILE ...]] [-tc TESTCASE] [-c CONFIG] [-sn DEVICE_SN] 166 [-rp REPORT_PATH [REPORT_PATH ...]] 167 [-respath RESOURCE_PATH [RESOURCE_PATH ...]] 168 [-tcpath TESTCASES_PATH [TESTCASES_PATH ...]] 169 [-ta TESTARGS [TESTARGS ...]] [-pt] 170 [-env TEST_ENVIRONMENT [TEST_ENVIRONMENT ...]] 171 [-e EXECTYPE] [-t [TESTTYPE [TESTTYPE ...]]] 172 [-td TESTDRIVER] [-tl TESTLEVEL] [-bv BUILD_VARIANT] 173 [-cov COVERAGE] [--retry RETRY] [--session SESSION] 174 [--dryrun] [--reboot-per-module] [--check-device] 175 [--repeat REPEAT] 176 action task 177 Specify tests to run. 178 positional arguments: 179 action Specify action 180 task Specify task name,such as "ssts", "acts", "hits" 181 ``` 182 183 > **说明:** 184 >一个基本的run指令结构如下: 185 >``` 186 >run [task name] -l module1;moudle2 187 >``` 188 >task name:任务类型。一般为ssts、acts、hits。非必选项 189 >-l :指定执行测试用例,多个测试用例,中间用;隔开 190 >module:被测试的模块。一般在testcases目录下存在对应的\\.json文件 191 >此外,其他参数可以作为约束条件,附加到这个基本指令之上使用。常用的如: 192 >-sn: 过滤执行测试设备,若设置为SN1,则表示只有设备SN1执行用例 193 >-c: 重新指定user\_config.xml。 194 >-rp: 报告生成路径。默认为xxx/xdevice/reports目录。指定目录后,优先级:指定目录\>xxx/xdevice/reports目录。 195 >-tcpath:环境目录,默认为xxx/xdevice/testcases目录。指定目录后,优先级:指定目录\>xxx/xdevice/testcases目录 196 >-respath:测试套目录,默认为xxx/xdevice/resource目录。指定目录后,优先级:指定目录\>xxx/xdevice/resource目录 197 >--reboot-per-module: 执行前先重启设备 198 199- **查看执行结果** 200 201 框架执行run指令,控制台会输出对应的log打印,还会生成对应的执行结果报告。如果使用了-rp参数指定报告路径,那么报告就会生成在指定的路径下。否则报告会存放在默认目录。 202 203 ``` 204 当前报告目录(默认目录/指定目录) 205 ├── result(模块执行结果存放目录) 206 │ ├── <模块名>.xml 207 │ ├── ... ... 208 │ 209 ├── log (设备和任务运行log存放目录) 210 │ ├── <设备1>.log 211 │ ├── ... ... 212 │ ├── <任务>.log 213 ├── summary_report.html(测试任务可视化报告) 214 ├── summary_report.html(测试任务数据化报告) 215 └── ... ... 216 ``` 217 218 219## 相关仓<a name="section260848241"></a> 220 221[测试子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E6%B5%8B%E8%AF%95%E5%AD%90%E7%B3%BB%E7%BB%9F.md) 222 223**test\_xdevice** 224 225[test\_developertest](https://gitee.com/openharmony/test_developertest/blob/master/README_zh.md) 226