diff --git a/zh-cn/device-dev/device-test/figures/FAQ-1.PNG b/zh-cn/device-dev/device-test/figures/FAQ-1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..bebb315141c4cc3c004b502bb288705c8af9ebd8 Binary files /dev/null and b/zh-cn/device-dev/device-test/figures/FAQ-1.PNG differ diff --git a/zh-cn/device-dev/device-test/figures/result-1.PNG b/zh-cn/device-dev/device-test/figures/result-1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..64c730feade073029102459e92c01f8ff885f51d Binary files /dev/null and b/zh-cn/device-dev/device-test/figures/result-1.PNG differ diff --git a/zh-cn/device-dev/device-test/xdevice.md b/zh-cn/device-dev/device-test/xdevice.md index d775060fb24ae40bc6f5f38cf66d90e6ab7958e7..61f3ee0665b7ced325af3507a5c77c63c3353e3c 100644 --- a/zh-cn/device-dev/device-test/xdevice.md +++ b/zh-cn/device-dev/device-test/xdevice.md @@ -12,114 +12,114 @@ xDevice测试调度框架是OpenHarmony中测试基础设施的核心组件, 根据设备类型的不同,xDevice主要测试的任务场景有以下三个: - 对轻量系统设备进行XTS测试(如:Hi3861开发板) -- 对小型系统设备进行XTS测试(如:HI3516开发板) +- 对小型系统设备进行XTS测试(如:Hi3516开发板) - 对标准系统设备进行XTS测试(如:RK3568开发板) -## 实现原理 +### 实现原理 xDevice包括以下功能模块: -- command,用户与测试平台命令行交互模块,提供用户输入命令解析,命令处理。 -- config,测试框架配置模块,提供测试平台串口连接方式和USB连接方式的不同配置选项。 -- driver,测试用例执行器,提供测试用例分发,执行,结果收集等主要测试步骤定义。 -- report,测试报告模块,提供测试结果解析和测试报告生成。 -- scheduler,测试框架调度模块,提供不同类型的测试执行器调度的调度功能。 -- environment,测试框架的环境配置模块,提供设备发现,设备管理的功能。 -- testkit,测试框架工具模块,提供json解析,网络文件挂载等操作。 -- log,测试框架日志模块,提供记录任务日志以及设备日志的功能。 - -除了上述功能模块之外,测试调度框架还依赖了用户自定义配置文件,配置文件主要分为两类: - -- **测试任务配置文件** - -user_config.xml是框架提供的测试任务配置文件,用户可以根据自身环境信息配置相关内容,主要包括以下配置内容: - -1. environment环境相关配置,详解介绍如下: - - ```xml - - - - - - - - - - - - - - cmd - 115200 - 8 - 1 - 20 - - - - deploy - 115200 - - - - - - - - cmd - 115200 - 8 - 1 - 1 - - - - - - - - - - ``` - -2. 测试用例目录设置 +- command:用户与测试平台命令行交互模块,提供用户输入命令解析,命令处理。 +- config:测试框架配置模块,提供测试平台串口连接方式和USB连接方式的不同配置选项。 +- driver:测试用例执行器,提供测试用例分发,执行,结果收集等主要测试步骤定义。 +- report:测试报告模块,提供测试结果解析和测试报告生成。 +- scheduler:测试框架调度模块,提供不同类型的测试执行器调度的调度功能。 +- environment:测试框架的环境配置模块,提供设备发现,设备管理的功能。 +- testkit:测试框架工具模块,提供json解析,网络文件挂载等操作。 +- log:测试框架日志模块,提供记录任务日志以及设备日志的功能。 + +除了上述功能模块之外,测试调度框架还依赖了用户自定义配置文件,配置文件主要分为两类。 + +**测试任务配置文件** + +user_config.xml是框架提供的测试任务配置文件,用户可以根据自身环境信息配置相关内容,主要包括以下配置内容。 + +environment环境相关配置,详解介绍如下。 + +```xml + + + + + + + + + + + + + + cmd + 115200 + 8 + 1 + 20 + + + + deploy + 115200 + + + + + + + + cmd + 115200 + 8 + 1 + 1 + + + + + + + + + +``` - ```xml - - - - - - - - - - - - - - - - ``` +测试用例目录设置。 + +```xml + + + + + + + + + + + + + + + +``` -3. 资源目录设置 +资源目录设置。 - ```xml - - - - - ``` +```xml + + + + +``` -4. 日志打印级别设置 +日志打印级别设置。 - ```xml - - INFO - ``` +```xml + +INFO +``` -- **测试套配置文件** +**测试套配置文件** 设备执行的测试支撑套件是由测试配置文件所指定。 @@ -165,100 +165,100 @@ user_config.xml是框架提供的测试任务配置文件,用户可以根据 } ``` -#### 测试命令 +### 测试命令 -框架指令可以分为三组:help、list、run。在指令序列中,以run为最常用的执行指令 +测试命令可以分为三组:help、list、run。在指令序列中,以run为最常用的执行指令。 -1. help +------ - 输入help指令可以查询框架指令帮助信息。 +输入help指令可以查询框架指令帮助信息。 - ``` - help: - use help to get information. - usage: - run: Display a list of supported run command. - list: Display a list of supported device and task record. - Examples: - help run - help list - ``` +``` +help: + use help to get information. +usage: + run: Display a list of supported run command. + list: Display a list of supported device and task record. +Examples: + help run + help list +``` - **说明:** +**说明:** - help run:展示run指令相关说明 。 +help run:展示run指令相关说明 。 - help list:展示 list指令相关说明。 +help list:展示 list指令相关说明。 -2. list +------ - list指令用来展示设备和相关的任务信息。 +list指令用来展示设备和相关的任务信息。 - ``` - list: - This command is used to display device list and task record. - usage: - list - list history - list - Introduction: - list: display device list - list history: display history record of a serial of tasks - list : display history record about task what contains specific id - Examples: - list - list history - list 6e****90 - ``` +``` +list: + This command is used to display device list and task record. +usage: + list + list history + list +Introduction: + list: display device list + list history: display history record of a serial of tasks + list : display history record about task what contains specific id +Examples: + list + list history + list 6e****90 +``` - **说明:** + **说明:** - list: 展示设备信息。 + list: 展示设备信息。 - list history: 展示任务历史信息 。 + list history: 展示任务历史信息 。 - list : 展示特定id的任务其历史信息。 + list : 展示特定id的任务其历史信息。 -3. run +------ - run指令主要用于执行测试任务。 +run指令主要用于执行测试任务。 - ``` - run: - This command is used to execute the selected testcases. - It includes a series of processes such as use case compilation, execution, and result collection. - usage: run [-l TESTLIST [TESTLIST ...] | -tf TESTFILE - [TESTFILE ...]] [-tc TESTCASE] [-c CONFIG] [-sn DEVICE_SN] - [-rp REPORT_PATH [REPORT_PATH ...]] - [-respath RESOURCE_PATH [RESOURCE_PATH ...]] - [-tcpath TESTCASES_PATH [TESTCASES_PATH ...]] - [-ta TESTARGS [TESTARGS ...]] [-pt] - [-env TEST_ENVIRONMENT [TEST_ENVIRONMENT ...]] - [-e EXECTYPE] [-t [TESTTYPE [TESTTYPE ...]]] - [-td TESTDRIVER] [-tl TESTLEVEL] [-bv BUILD_VARIANT] - [-cov COVERAGE] [--retry RETRY] [--session SESSION] - [--dryrun] [--reboot-per-module] [--check-device] - [--repeat REPEAT] - action task - Specify tests to run. - positional arguments: - action Specify action - task Specify task name,such as "ssts", "acts", "hits" - ``` +``` +run: + This command is used to execute the selected testcases. + It includes a series of processes such as use case compilation, execution, and result collection. +usage: run [-l TESTLIST [TESTLIST ...] | -tf TESTFILE + [TESTFILE ...]] [-tc TESTCASE] [-c CONFIG] [-sn DEVICE_SN] + [-rp REPORT_PATH [REPORT_PATH ...]] + [-respath RESOURCE_PATH [RESOURCE_PATH ...]] + [-tcpath TESTCASES_PATH [TESTCASES_PATH ...]] + [-ta TESTARGS [TESTARGS ...]] [-pt] + [-env TEST_ENVIRONMENT [TEST_ENVIRONMENT ...]] + [-e EXECTYPE] [-t [TESTTYPE [TESTTYPE ...]]] + [-td TESTDRIVER] [-tl TESTLEVEL] [-bv BUILD_VARIANT] + [-cov COVERAGE] [--retry RETRY] [--session SESSION] + [--dryrun] [--reboot-per-module] [--check-device] + [--repeat REPEAT] + action task +Specify tests to run. + positional arguments: + action Specify action + task Specify task name,such as "ssts", "acts", "hits" +``` - **说明:** run指令基本使用方法如下: +run指令基本使用方法如下。 - | xDevice命令 | 功能 | 示例 | - | :----------: | :----------------------------------------------------------: | :----------------------------------------------------------: | - | run xts | 运行所有指定类型的XTS模块,如acts,hits,ssys等 | run acts | - | run -l xxx | 运行指定的模块测试套,模块间用分号隔离 | run -l ActsWifiServiceTest;ActsLwipTest | - | run -sn | 指定运行设备的SN好,多个SN号用分号隔离 | run acts -sn 10.117.183.37:17001
run acts -sn 88Y02******57723;VEG02******16642 | - | run -rp | 指定报告生成的路径,默认会在工作目录的reports下用时间戳或任务ID建立子目录 | run acts -rp /suites/hits/xdevice_reports/2020.09.28-14.21.26 | - | run -respath | 指定测试资源路径,默认为resource目录 | run acts -respath /cloud/zidane/xts/release/suites/resource | - | run -ta | 指定模块运行参数,可以指定运行模块用例中指定的用例,多个用例用逗号隔离,目前支持JS驱动测试套 | run acts -ta class:ohos.hardware.soundtrigger.SoundTriggerTest#testKeyphraseParcelUnparcel_noUsers | - | run --retry | 重新运行上一次任务的失败用例,重新生成新的测试报告 | run –retryrun --retry --session 2020-10-30-17-15-11(任务目录名) | +| xDevice命令 | 功能 | 示例 | +| :----------: | :----------------------------------------------------------: | :----------------------------------------------------------: | +| run xts | 运行所有指定类型的XTS模块,如acts,hits,ssys等 | run acts | +| run -l xxx | 运行指定的模块测试套,模块间用分号隔离 | run -l ActsWifiServiceTest;ActsLwipTest | +| run -sn | 指定运行设备的SN号,多个SN号用分号隔离 | run acts -sn 10.117.183.37:17001
run acts -sn 88Y02******57723;VEG02******16642 | +| run -rp | 指定报告生成的路径,默认会在工作目录的reports下用时间戳或任务ID建立子目录 | run acts -rp /suites/hits/xdevice_reports/2020.09.28-14.21.26 | +| run -respath | 指定测试资源路径,默认为resource目录 | run acts -respath /cloud/zidane/xts/release/suites/resource | +| run -ta | 指定模块运行参数,可以指定运行模块用例中指定的用例,多个用例用逗号隔离,目前支持JS驱动测试套 | run acts -ta class:ohos.hardware.soundtrigger.SoundTriggerTest#testKeyphraseParcelUnparcel_noUsers | +| run --retry | 重新运行上一次任务的失败用例,生成新的测试报告 | run –retryrun --retry --session 2020-10-30-17-15-11(任务目录名) | -#### 测试报告 +### 测试报告 框架执行run指令,控制台会输出对应的log打印,还会生成对应的执行结果报告。如果使用了-rp参数指定报告路径,那么报告就会生成在指定的路径下。否则报告会存放在默认目录。 @@ -297,56 +297,72 @@ user_config.xml是框架提供的测试任务配置文件,用户可以根据 ### 安装xDevice -- 安装基础框架xDevice +- 安装基础框架xDevice。 - 1. 进入xDevice根目录; + 1. 进入xDevice根目录。 + + ``` + cd testfwk_xdevice + ``` - 2. 打开控制台,执行如下命令: + 2. 打开控制台,执行如下命令。 ```bash python setup.py install ``` -- 安装OpenHarmony驱动插件ohos - - 1. 进行plugin/ohos目录; +- 安装OpenHarmony驱动插件ohos。 - 2. 打开控制台,执行如下命令: + 1. 进行plugin/ohos目录。 + ``` + cd testfwk_xdevice/plugin/ohos + ``` + + 2. 打开控制台,当前用户下执行如下命令。 + ```bash python setup.py install ``` ### 检验环境是否搭建成功 -#### 检验xDevice是否安装成功 +检验xDevice是否安装成功。 -1. 进入xDevice根目录; +1. 进入xDevice根目录。 -2. 打开控制台,执行如下命令: + ``` + cd testfwk_xdevice + ``` + +2. 打开控制台,执行如下命令。 ```bash python -m pip list ``` -3. 查看是否已经成功安装xdevice以及xdevice-ohos两个库; +3. 查看是否已经成功安装**xdevice**以及**xdevice-ohos**两个库。 ``` xdevice 0.0.0 xdevice-ohos 0.0.0 ``` -#### 查看xDevice工具是否能够正常运行 +查看xDevice工具是否能够正常运行。 + +1. 进入xDevice根目录。 -1. 进入xDevice根目录; + ``` + cd testfwk_xdevice + ``` -2. 打开控制台,执行如下命令: +2. 打开控制台,执行如下命令。 ``` python -m xdevice ``` -3. 查看控制台是否正常输出如下信息: +3. 查看控制台是否正常输出如下信息。 ``` [2022-10-13 15:43:31,284] [30076] [Main] [INFO] [*************** xDevice Test Framework 2.11.0.1091 Starting ***************] @@ -359,17 +375,17 @@ user_config.xml是框架提供的测试任务配置文件,用户可以根据 ## 轻量系统设备XTS测试指导(wifiiot) -1. 识别串口用途,修改根目录中的user_config.xml文件; +1. 识别串口用途,修改根目录中的user_config.xml文件。 - type为cmd的com口对应板子上的AT命令串口,用于对设备发送指令,例子中配置为ChA(COM20)串口号; + type为cmd的com口对应板子上的AT命令串口,用于对设备发送指令,示例中配置为ChA(COM20)串口号。 - type为deploy的com口对应板子上的日志输出串口,用于镜像烧录和日志打印,例子中配置为ChB(COM18)串口号; + type为deploy的com口对应板子上的日志输出串口,用于镜像烧录和日志打印,示例中配置为ChB(COM18)串口号。 - PS:若AT命令串口和日志输出串口共用,可以配置为相同。 + 若AT命令串口和日志输出串口共用,可以配置为相同,即user_config中的type为cmd的com口与type为deploy的com口可配置为一样的端口,如COM18。 ![L0-1](figures/L0-1.PNG) - user_config.xml示例如下: + user_config.xml的修改示例如下。 ```xml @@ -408,9 +424,9 @@ user_config.xml是框架提供的测试任务配置文件,用户可以根据 ``` -2. 在xDevice根目录下新建testcase文件夹用于存放测试套文件,具体XTS测试套从系统构建的版本中获取,或参考官方进行构建。 +2. 在xDevice根目录下新建testcase文件夹用于存放测试套文件,具体XTS测试套从系统构建的[每日版本](http://ci.openharmony.cn/dailys/dailybuilds)中获取。 - 测试套测试配置文件json,示例如下 + 测试套测试配置文件json,示例如下。 ```json { @@ -436,37 +452,41 @@ user_config.xml是框架提供的测试任务配置文件,用户可以根据 3. 执行用例 - 进入xDevice根目录;打开控制台进入xDevice控制台,执行如下命令: + 进入xDevice根目录;打开控制台进入xDevice控制台,执行如下命令。 ```bash python -m xdevice ``` - 执行测试套命令: + 执行测试套命令。 ``` run -l ActsAllTest ``` + + 执行结果如下。 + + ![result-1](figures/result-1.PNG) ## 小型系统设备XTS测试指导(ipcamera) -1. 识别串口用途,配置NFS服务器,修改根目录中的user_config.xml文件; +1. 识别串口用途。 - type为cmd的com口对应板子上的AT命令串口,用于对设备发送指令,例子中配置为ChA(COM20)串口号; + type为cmd的com口对应板子上的AT命令串口,用于对设备发送指令,例子中配置为ChA(COM20)串口号。 L0-1 ipcamera设备有两种连接方式,一种是本地串口连接,一种是通过局域网ip连接。 +2. 配置NFS服务器 + NFS挂载方式有两种,一种是远程PC挂载方式,一种是本地局域网挂载方式。 本地局域网NFS服务的配置方法如下。 - - 下载安装NFS服务器 + - 下载安装[NFS服务器](https://www.hanewin.net/nfs-e.htm)。 - 下载地址:https://www.hanewin.net/nfs-e.htm - - - 配置输出->编辑输出表文件 + - 配置输出->编辑输出表文件。 @@ -476,11 +496,11 @@ user_config.xml是框架提供的测试任务配置文件,用户可以根据 - 停止NFS服务器->重启运行NFS服务器使刚才添加的共享路径生效。 - - 找到ipcamera设备在PC上面映射的网口:控制面板->网络和Internet->网络共享中心->以太网状态->以太网属性->手动设置IP地址为:192.168.1.11. + - 找到ipcamera设备在PC上面映射的网口:控制面板->网络和Internet->网络共享中心->以太网状态->以太网属性->手动设置IP地址为:192.168.1.11。 - 配置完NFS,ipcamera的user_config.xml示例如下: +3. 修改根目录中的user_config.xml文件,示例如下。 ```xml @@ -524,7 +544,7 @@ user_config.xml是框架提供的测试任务配置文件,用户可以根据 ``` -2. 在xDevice根目录下新建testcase文件夹用于存放测试套文件,具体XTS测试套从系统构建的版本中获取,或参考官方进行构建。 +4. 在xDevice根目录下新建testcase文件夹用于存放测试套文件,具体XTS测试套从系统构建的[每日版本](http://ci.openharmony.cn/dailys/dailybuilds)中获取。 测试套测试配置文件json,示例如下。 @@ -556,37 +576,37 @@ user_config.xml是框架提供的测试任务配置文件,用户可以根据 } ``` -3. 执行用例 +5. 执行用例。 - 进入xDevice根目录,打开控制台进入xDevice控制台,执行如下命令: + 进入xDevice根目录,打开控制台进入xDevice控制台,执行如下命令。 ```bash python -m xdevice ``` - - 执行测试套命令: + + 执行测试套命令。 ``` run -l kernel ``` -## 标准系统设备XTS测试指导(RK3568) + 执行结果如下。 -1. 配置hdc工具,从CI上下载ohos_sdk最新版本即可。 + ![result-1](figures/result-1.PNG) - CI地址:http://ci.openharmony.cn/dailys/dailybuilds +## 标准系统设备XTS测试指导(RK3568) - 下载工具后,把hdc配置到环境变量中。 +1. 配置hdc工具,从[CI](http://ci.openharmony.cn/dailys/dailybuilds)上下载ohos_sdk最新版本即可。 -2. 检查设备是否正常。 + 下载工具后,把hdc配置到环境变量中,配置方法:右键单击我的电脑->属性->高级系统设置->环境变量->Path。 - 执行如下命令查看设备是否正常连接。 +2. 执行如下命令查看设备是否正常连接。 ```bask hdc_std list targets ``` - -3. 修改user_config.xml文件 + +3. 修改user_config.xml文件,示例如下。 ```xml @@ -607,7 +627,7 @@ user_config.xml是框架提供的测试任务配置文件,用户可以根据 ``` -4. 在xDevice根目录下新建testcase文件夹用于存放测试套文件,具体XTS测试套从系统构建的版本中获取,或参考官方进行构建。 +4. 在xDevice根目录下新建testcase文件夹用于存放测试套文件,具体XTS测试套从系统构建的[每日版本](http://ci.openharmony.cn/dailys/dailybuilds)中获取。 测试套测试配置文件json,示例如下。 @@ -640,26 +660,35 @@ user_config.xml是框架提供的测试任务配置文件,用户可以根据 } ``` -5. 执行用例 +5. 执行用例。 - 进入xDevice根目录,打开控制台进入xDevice控制台,执行如下命令: + 进入xDevice根目录,打开控制台进入xDevice控制台,执行如下命令。 ```bash python -m xdevice ``` - 执行测试套命令: + 执行测试套命令。 ``` run -l ActBmsStageEtsTest ``` - + + 执行结果如下。 + + ![result-1](figures/result-1.PNG) ## 常见问题 -### 1.hdc list targets能查找到设备,但xDevice识别不到设备。 +### hdc list targets能查找到设备,但xDevice识别不到设备。 + +**问题描述** + +出现如下错误。 + +![FAQ-1](figures/FAQ-1.PNG) -**原因** +**可能原因** 环境变量中曾设置过HDC_SERVER_PORT变量修改过hdc的端口,由于xDevice默认需要使用8710端口,若曾修改过该端口会导致xDevice框架无法识别设备。