测试子系统

    目录

    表 1 开发者自测试工具源代码目录结构

    测试工具环境依赖

    1. python版本>=3.7.5
    2. NFS版本>=V4
    3. 运行操作系统:Windows版本>=Win10,Linux为Ubuntu18.04

    安装

    依赖python环境:

    需要本地的python安装串口插件pyserial,在shell界面执行安装命令pip intall pyserial,安装成功如下图

    • 自测试用例规范

      • 命名规范

        测试用例源文件名称和测试套内容保持一致,测试套与用例之间关系1:N,测试套与测试源文件之间关系1:1,每个源文件全局唯一,格式:[特性]_[功能]_[子功能1]_[子功能1.1],子功能支持向下细分。

        文件命名采用大驼峰方式命名,以Test结尾,如demo用例:developertest/example/cxx_demo

      • 用例编码规范

        开发者自测试用例原则上与特性代码编码规范保持一致,另外需要添加必要的用例描述信息,详见

      • 测试用例编译配置规范

        用例采用GN方式编译,配置遵循本开源项目的编译指导使用

    • 自测试用例模板

      详见测试demo用例developertest/example/cxx_demo/test/unittest/common/calc_subtraction_test.cpp

    • 自测试用例目录规划

    • 编写自测试用例步骤

      1. 添加用例文件头注释说明
      2. 引用gtest头文件和ext命名空间
      3. 添加被测试类头文件
      4. 定义测试套(测试类)
      5. 实现该测试套具体的测试用例,包括用例注释和用例逻辑实现
      6. 编写用例编译配置

    • 编写用例编译文件

      • 定义用例编译构建目标

        1. 添加用例编译文件头注释信息
        2. 导入用例编译模板文件
        3. 指定用例文件输出路径
        4. 配置用例编译依赖包含目录
        5. 指定用例编译目标输出的用例执行文件名称
        6. 编写具体的用例编译脚本(添加需要参与编译的源文件、配置和依赖 )
        7. 对目标用例文件进行条件分组(分组名称固定为:unittest/moduletest)
      • 如果存在多个测试套,定义公共编译配置

      • 将测试用例添加到构建系统中

    • 测试用例级别定义
      • 基本(Level1):<1s
      • 重要(Level2):<10s
      • 一般(Level3):<5min
      • 生僻(Level4):>5min

    使用测试框架

    • 安装xdevice基础框架

      1. 以Windows环境为例,打开xdevice安装目录:test\xdevice
      2. 打开控制台窗口,执行如下命令

      3. 安装成功如下图

        测试子系统 - 图1

    • 修改developertest组件配置

      文件:resource/config/user_config.xml

      1. [test_cases] # 指定测试用例的输出路径,编译输出目录,例如

        1. <test_cases>
        2. <dir>S:\out\ipcamera_hi3518ev300_liteos_a\test</dir>
        3. </test_cases>
      2. [NFS] # 指定NFS的映射路径,host_dir为PC侧的NFS目录,board_dir为板侧创建的目录,例如

        1. <NFS>
        2. <host_dir>D:\nfs</host_dir>
        3. <board_dir>user</board_dir>
        4. </NFS>
    • 执行自测试用例前的环境检查

      • 系统镜像与文件系统已烧录进开发板,开发板上系统正常运行,在系统模式下,如shell登录时设备提示符OHOS#
      • 开发主机和开发板串口连接正常,网口连接正常
      • 开发主机IP与开发板IP处在同一小网网段,相互可以ping通
      • 开发主机侧创建空目录用于开发板通过NFS挂载测试用例,并且NFS服务启动正常
    • 运行测试套

      • 启动测试框架

        1. Windows环境启动测试框架

        2. Linux环境启动测试框架

          1. ./strat.sh
    1. - 设备形态选择
    2. 根据实际的开发板选择,设备形态配置:developertest/src/core/resource/config/framework\_config.xml
    3. 1. 执行测试指令示例,其中-t ut为必选,-ss和-tm为可选字段
    4. ```
    5. run -t ut -ss test -tm example
    6. ```
    7. 2. 参数说明:指定参数可以执行特定特性、模块对应的测试套
    8. ```
    9. [-ss SUBSYSTEM] [-tm TESTMODULE] [-ts TESTSUIT]
    10. [-tc TESTCASE] [-tl TESTLEVEL] [-os TARGET_OS_NAME]
    11. [-bv BUILD_VARIANT] [-b [BUILD [BUILD ...]]]
    12. [-cov COVERAGE] [-tf TESTFILE] [-res RESOURCE]
    13. [-sn DEVICE_SN] [-c CONFIG] [-rp REPORTPATH] [-e EXECTYPE]
    14. [-td TEST_DRIVER]
    15. action Specify test para.positional arguments:
    16. action Specify action
    17. optional arguments:
    18. -h, --help show this help message and exit
    19. -p PRODUCTFORM, --productform PRODUCTFORM Specified product form
    20. Specify test type(UT,MST,ST,PERF,ALL)
    21. -ss SUBSYSTEM, --subsystem SUBSYSTEM Specify test subsystem
    22. -tm TESTMODULE, --testmodule TESTMODULE Specified test module
    23. -ts TESTSUIT, --testsuit TESTSUIT Specify test suit
    24. -tc TESTCASE, --testcase TESTCASE Specify test case
    25. -tl TESTLEVEL, --testlevel TESTLEVEL Specify test level
    26. -bv BUILD_VARIANT, --build_variant BUILD_VARIANT Specify build variant(release,debug)
    27. -b [BUILD [BUILD ...]], --build [BUILD [BUILD ...]]
    28. Specify build values(version,testcase)
    29. -tf TESTFILE, --testfile TESTFILE Specify test suites list file
    30. -res RESOURCE, --resource RESOURCE Specify test resource
    31. -sn DEVICE_SN, --device_sn DEVICE_SN Specify device serial number
    32. -c CONFIG, --config CONFIG Specify test config file
    33. -rp REPORTPATH, --reportpath REPORTPATH Specify test report path
    34. -e EXECTYPE, --exectype EXECTYPE Specify test execute type
    35. -td TEST_DRIVER, --testdriver TEST_DRIVER Specify test driver id
    36. ```
    • 测试框架帮助

      • 帮助指令,用于查询测试平台支持哪些测试指令

        1. help
    • 通过在测试框架中执行测试指令,即可以生成测试日志和测试报告
    • 测试结果

      • 测试用例的结果会直接显示在控制台上,执行一次的测试结果根路径如下:

        1. reports/xxxx-xx-xx-xx-xx-xx
      • 测试用例格式化结果

      • 测试用例日志

        1. log/plan_log_xxxx-xx-xx-xx-xx-xx.log
      • 测试报告概率

        1. summary_report.html
      • 测试报告详情

        1. details_report.html
    • 测试框架日志

      1. 最近一次测试报告

      涉及仓

      test_xdevice