testfwk_xdevice/README_zh.md
2021-06-02 02:57:29 +08:00

8.8 KiB
Raw Blame History

xdevice组件

简介

xdevice是OpenHarmony中为测试框架的核心组件提供用例执行所依赖的相关服务。

xdevice主要包括以下几个主要模块

  • command用户与测试平台命令行交互模块提供用户输入命令解析命令处理。
  • config测试框架配置模块提供测试平台串口连接方式和USB连接方式的不同配置选项。
  • driver测试用例执行器提供测试用例分发执行结果收集等主要测试步骤定义。
  • report测试报告模块提供测试结果解析和测试报告生成。
  • scheduler测试框架调度模块提供不同类型的测试执行器调度的调度功能。
  • environment测试框架的环境配置模块提供设备发现设备管理的功能。
  • testkit测试框架工具模块提供json解析网络文件挂载等操作。
  • resource测试框架资源模块提供设备连接配置文件和报告模板定义。

目录

xdevice
├── config                    # xdevice组件配置
│     ├── user_config.xml    # xdevice环境配置
├── resource                  # xdevice组件资源
│     ├── tools              # 版本烧录工具
├── src                       # 组件源码目录
│     ├── xdevice
├── extension                 # xdevice扩展模块
│     ├── src                # 扩展模块源码
│     └── setup.py           # xdevice扩展模块安装脚本

约束

运行环境要求:

  • python版本>=3.7.5
  • pyserial>=3.3
  • paramiko>=2.7.1
  • rsa>=4.0

使用

  • 安装xdevice

    1. 打开xdevice安装目录。

    2. 打开控制台,执行如下命令:

      python setup.py install
      
  • 安装extension

    1. 打开extension安装目录。

    2. 打开控制台,执行如下命令:

      python setup.py install
      
  • 修改user_config.xml

    user_config.xml是框架提供的用户配置文件用户可以根据自身环境信息配置相关内容具体介绍如下

    1、environment环境相关配置

    • 设备类型一

      说明: ip/port: 表示远程设备地址默认情况为空表示使用本地设备ip地址为127.0.0.1port为本机hdc启动端口号 sn: 过滤执行测试设备若设置为SN1则表示只有设备SN1能够支持后续run命令执行其他设备分配状态设置为Ignored不参与命令执行可通过list devices命令中Allocation字段来查看sn设置可配置多个sn中间以;隔开;

    • 设备类型二

      说明: type: 设备连接方式com表示连接方式是串口 label: 表示设备种类如wifiiot serial: 表示一个串口定义 serial/com 表示本地连接的串口如COM20 serial/type 表示串口类型cmd是命令串口deploy是刷机串口社区版本cmd和deploy使用同一个串口com值相同 serial/baud_rate、data_bits、stop_bits、timeout: 为串口波特率等串口参数 ,一般采用默认值即可。

    2、测试用例目录设置

    dir: 指定测试用例目录。

    3、nfs挂载

    说明: server: nfs挂载配置label取值为NfsServer。 server/ip: 挂载环境IP地址。 server/port: 挂载环境端口。 server/username: 登录用户名。 server/password: 登录用户密码。 server/dir: 对应挂载的外部路径。 server/remote: nfs服务器与xDevice执行机不在同一台机器时remote配置为true否则为false。

  • 选定任务类型

  • 启动框架

  • 执行指令

    框架指令可以分为三组help、list、run。在指令序列中以run为最常用的执行指令。

    1、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 run展示run指令相关说明 help list展示 list指令相关说明

    2、list

    list指令用来展示设备和相关的任务信息

    list:
         This command is used to display device list and task record.  
    usage:
          list
          list history
          list <id>  
    Introduction:
         list:         display device list
         list history: display history record of a serial of tasks
         list <id>:    display history record about task what contains specific id  
    Examples:
         list
         list history
         list 6e****90
    

    说明: list: 展示设备信息 list history: 展示任务历史信息 list <id>: 展示特定id的任务其历史信息

    3、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指令结构如下

    run [task name] -l module1;moudle2
    

    task name任务类型。一般为ssts、acts、hits。非必选项 -l :指定执行测试用例,多个测试用例,中间用;隔开 module被测试的模块。一般在testcases目录下存在对应的\.json文件 此外,其他参数可以作为约束条件,附加到这个基本指令之上使用。常用的如: -sn: 过滤执行测试设备若设置为SN1则表示只有设备SN1执行用例 -c: 重新指定user_config.xml。 -rp: 报告生成路径。默认为xxx/xdevice/reports目录。指定目录后优先级:指定目录>xxx/xdevice/reports目录。 -tcpath环境目录默认为xxx/xdevice/testcases目录。指定目录后优先级:指定目录>xxx/xdevice/testcases目录 -respath测试套目录默认为xxx/xdevice/resource目录。指定目录后优先级:指定目录>xxx/xdevice/resource目录 --reboot-per-module: 执行前先重启设备

  • 查看执行结果

    框架执行run指令控制台会输出对应的log打印还会生成对应的执行结果报告。如果使用了-rp参数指定报告路径那么报告就会生成在指定的路径下。否则报告会存放在默认目录。

    当前报告目录(默认目录/指定目录)
         ├── result模块执行结果存放目录
         │     ├── <模块名>.xml
         │     ├──  ... ... 
         │      
         ├── log (设备和任务运行log存放目录)
         │     ├── <设备1>.log
         │     ├── ... ...
         │     ├── <任务>.log
         ├── summary_report.html测试任务可视化报告
         ├── summary_report.html测试任务数据化报告
         └── ... ...
    

相关仓

测试子系统

test_xdevice

test_developertest