.. | ||
bundle.json | ||
LICENSE | ||
README.md |
测试子系统README
测试子系统
简介
开发过程采用测试驱动开发模式,开发者基于系统新增特性可以通过开发者自己开发用例保证,对于系统已有特性的修改,也可通过修改项目中原有自测试用例保证,开发者自测试旨在帮助开发者在开发阶段就能开发出高质量代码
目录
表 1 开发者自测试工具源代码目录结构
约束
测试工具环境依赖
- python版本>=3.7.5
- NFS版本>=V4
- 运行操作系统:Windows版本>=Win10,Linux为Ubuntu18.04
安装
依赖python环境:
需要本地的python安装串口插件pyserial,在shell界面执行安装命令pip intall pyserial,安装成功如下图
编写测试用例
-
自测试用例规范
-
详见测试demo用例developertest/example/cxx_demo/test/unittest/common/calc_subtraction_test.cpp
说明: Feature: 被测特性的描述 Function: 被测特性功能 SubFunction:被测特性子功能 FunctionPoints:被测的功能点 EnvConditions:被测特性的环境与被测条件 CaseDescription:测试用例描述 step:测试复杂逻辑时注明用例执行的步骤
-
自测试用例目录规划
subsystem(子系统,系统组件) ├── module(模块) │ └── test(模块测试目录) │ └── unittest(单元测试) │ ├── common(公共用例) │ ├── liteos(仅liteos核用例) │ └── linux(仅Linux核用例) │ └── moduletest(模块测试) │ ├── common │ ├── liteos │ └── linux └── test(子系统测试目录) └── unittest(单元测试) ├── common ├── liteos ├── linux └── moduletest(模块测试) ├── common ├── liteos ├── linux
说明: 其中liteos和Linux仅不同设备形态举例,对于同一特性在不同开发板上,如果用例没有差异,则用例放置common目录下,如果同一特性,用例区分不同设备形态,可能包含内核差异,芯片平台差异,则用例以目录区分
-
编写自测试用例步骤
-
添加用例文件头注释说明
-
引用gtest头文件和ext命名空间
-
添加被测试类头文件
-
定义测试套(测试类)
-
实现该测试套具体的测试用例,包括用例注释和用例逻辑实现
-
编写用例编译配置
说明: *样例参考:developertest/example/cxx_demo/test/unittest/common/calc_subtraction_test.cpp 注意点如下: a、SetUp & TearDown是针对该测试套下每条用例执行前和执行后的处理逻辑 b、SetUpTestCase & TearDownTestCase是针对该测试套下所有用例执行前和执行后的处理逻辑 c、HWTEST的使用:特点:只适合做简单测试(执行不依赖Setup & Teardown)缺点:多个测试场景需要相同数据配置的情况不适用,测试用例之间可能相互影响,不具备独立性 d、使用printf函数打印日志
-
-
编写用例编译文件
-
测试用例级别定义
- 基本(Level1):<1s
- 重要(Level2):<10s
- 一般(Level3):<5min
- 生僻(Level4):>5min
使用测试框架
-
安装xdevice基础框架
-
修改xdevice基础框架配置
文件:xdevice/config/user_config.xml
-
device
<device type="com" label="ipcamera"> <serial> <com>COM1</com> <type>cmd</type> <baund_rate>115200</baund_rate> <data_bits>8</data_bits> <stop_bits>1</stop_bits> <timeout>1</timeout> </serial> </device>
-
-
修改developertest组件配置
文件:resource/config/user_config.xml
-
test\_cases
<test_cases> <dir>S:\out\ipcamera_hi3518ev300_liteos_a\test</dir> </test_cases>
-
NFS
<NFS> <host_dir>D:\nfs</host_dir> <board_dir>user</board_dir> </NFS>
-
-
执行自测试用例前的环境检查
- 系统镜像与文件系统已烧录进开发板,开发板上系统正常运行,在系统模式下,如shell登录时设备提示符OHOS#
- 开发主机和开发板串口连接正常,网口连接正常
- 开发主机IP与开发板IP处在同一小网网段,相互可以ping通
- 开发主机侧创建空目录用于开发板通过NFS挂载测试用例,并且NFS服务启动正常
-
运行测试套
-
启动测试框架
-
Windows环境启动测试框架
start.bat
-
Linux环境启动测试框架
./strat.sh
-
-
设备形态选择
根据实际的开发板选择,设备形态配置:developertest/src/core/resource/config/framework_config.xml
-
执行测试指令
-
执行测试指令示例,其中-t ut为必选,-ss和-tm为可选字段
run -t ut -ss test -tm example
-
参数说明:指定参数可以执行特定特性、模块对应的测试套
usage: __main__.py [-h] [-p PRODUCTFORM] [-t [TESTTYPE [TESTTYPE ...]]] [-ss SUBSYSTEM] [-tm TESTMODULE] [-ts TESTSUIT] [-tc TESTCASE] [-tl TESTLEVEL] [-os TARGET_OS_NAME] [-bv BUILD_VARIANT] [-b [BUILD [BUILD ...]]] [-cov COVERAGE] [-tf TESTFILE] [-res RESOURCE] [-sn DEVICE_SN] [-c CONFIG] [-rp REPORTPATH] [-e EXECTYPE] [-td TEST_DRIVER] action Specify test para.positional arguments: action Specify action optional arguments: -h, --help show this help message and exit -p PRODUCTFORM, --productform PRODUCTFORM Specified product form -t [TESTTYPE [TESTTYPE ...]], --testtype [TESTTYPE [TESTTYPE ...]] Specify test type(UT,MST,ST,PERF,ALL) -ss SUBSYSTEM, --subsystem SUBSYSTEM Specify test subsystem -tm TESTMODULE, --testmodule TESTMODULE Specified test module -ts TESTSUIT, --testsuit TESTSUIT Specify test suit -tc TESTCASE, --testcase TESTCASE Specify test case -tl TESTLEVEL, --testlevel TESTLEVEL Specify test level -bv BUILD_VARIANT, --build_variant BUILD_VARIANT Specify build variant(release,debug) -b [BUILD [BUILD ...]], --build [BUILD [BUILD ...]] Specify build values(version,testcase) -tf TESTFILE, --testfile TESTFILE Specify test suites list file -res RESOURCE, --resource RESOURCE Specify test resource -sn DEVICE_SN, --device_sn DEVICE_SN Specify device serial number -c CONFIG, --config CONFIG Specify test config file -rp REPORTPATH, --reportpath REPORTPATH Specify test report path -e EXECTYPE, --exectype EXECTYPE Specify test execute type -td TEST_DRIVER, --testdriver TEST_DRIVER Specify test driver id
-
-
-
测试框架帮助
-
帮助指令,用于查询测试平台支持哪些测试指令
help
-
测试结果与日志
-
通过在测试框架中执行测试指令,即可以生成测试日志和测试报告
-
测试结果
-
测试用例的结果会直接显示在控制台上,执行一次的测试结果根路径如下:
reports/xxxx-xx-xx-xx-xx-xx
-
测试用例格式化结果
result/
-
测试用例日志
log/plan_log_xxxx-xx-xx-xx-xx-xx.log
-
测试报告概率
summary_report.html
-
测试报告详情
details_report.html
-
-
测试框架日志
reports/platform_log_xxxx-xx-xx-xx-xx-xx.log
-
最近一次测试报告
reports/latest
涉及仓
test_developertest
test_xdevice