提交 c8041b1a 编写于 作者: R ry

modify test cod

Signed-off-by: Nry <ry.renyi@huawei.com>
上级 22acdecf
...@@ -20,10 +20,97 @@ OpenHarmony系统开发人员在新增或修改代码之后,希望可以快速 ...@@ -20,10 +20,97 @@ OpenHarmony系统开发人员在新增或修改代码之后,希望可以快速
## 环境准备 ## 环境准备
开发自测试框架依赖于python运行环境,python版本为3.8.X,在使用测试框架之前可参阅以下方式进行配置。 开发自测试框架依赖于python运行环境,python版本为3.7.5及以上版本,在使用测试框架之前可参阅以下方式进行配置。
- [环境配置](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-testguide-test.md#%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE) 源码获取可[参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md)
- [源码获取](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md)
### 自测试框架基础环境依赖
| 环境依赖 | 操作系统 | Linux系统扩展组件 | python | python插件 | NFS Server | HDC |
| -------- | ----------------- | ----------------- | --------------- | ------------------------------------------------------------ | ------------------------------------------------ | ------------------- |
| 版本型号 | Ubuntu18.04及以上 | libreadline-dev | 3.7.5版本及以上 | pyserial 3.3及以上、paramiko2.7.1及以上、setuptools40.8.0及以上、rsa4.0及以上 | haneWIN NFS Server 1.2.50及以上或者 NFS v4及以上 | 1.1.0版本及以上 |
| 详细说明 | 代码编译环境 | 命令行读取插件 | 测试框架语言 | pyserial:支持python的串口通信;paramiko:支持python使用SSH协议;setuptools:支持python方便创建和分发python包;rsa:支持python rsa加密 | 支持设备通过串口连接 | 支持设备通过HDC连接 |
1. 安装Linux扩展组件readline,安装命令如下:
```
sudo apt-get install libreadline-dev
```
安装成功提示如下:
```
Reading package lists... Done
Building dependency tree
Reading state information... Done
libreadline-dev is already the newest version (7.0-3).
0 upgraded, 0 newly installed, 0 to remove and 11 not upgraded.
```
2. 安装setuptools插件,安装命令如下:
```
pip3 install setuptools
```
安装成功提示如下:
```
Requirement already satisfied: setuptools in d:\programs\python37\lib\site-packages (41.2.0)
```
3. 安装paramiko插件,安装命令如下:
```
pip3 install paramiko
```
安装成功提示如下:
```
Installing collected packages: pycparser, cffi, pynacl, bcrypt, cryptography, paramiko
Successfully installed bcrypt-3.2.0 cffi-1.14.4 cryptography-3.3.1 paramiko-2.7.2 pycparser-2.20 pynacl-1.4.0
```
4. 安装python的rsa插件,安装命令如下:
```
pip3 install rsa
```
安装成功提示如下:
```
Installing collected packages: pyasn1, rsa
Successfully installed pyasn1-0.4.8 rsa-4.7
```
5. 安装串口插件pyserial,安装命令如下:
```
pip3 install pyserial
```
安装成功提示如下:
```
Requirement already satisfied: pyserial in d:\programs\python37\lib\site-packages\pyserial-3.4-py3.7.egg (3.4)
```
6. 如果设备仅支持串口输出测试结果,则需要安装NFS Server
> 针对小型或轻量设备
- Windows环境下安装,例如安装haneWIN NFS Server1.2.50。
- Linux环境下安装,安装命令如下:
```
sudo apt install nfs-kernel-server
```
安装成功提示如下:
```
Reading package lists... Done
Building dependency tree
Reading state information... Done
nfs-kernel-server is already the newest version (1:1.3.4-2.1ubuntu5.3).
0 upgraded, 0 newly installed, 0 to remove and 11 not upgraded.
```
7. 如果设备支持HDC连接,则需要安装HDC工具,安装流程请[参考](https://gitee.com/openharmony/developtools_hdc_standard/blob/master/README_zh.md)
### 环境依赖检查
| 检查项 | 操作 | 满足环境 |
| -------------------------------------------------- | --------------------------------------------------- | ------------------------- |
| 检查python安装成功 | 命令行窗口执行命令:python --version | 版本不小于3.7.5即可 |
| 检查python扩展插件安装成功 | 打开test/developertest目录,执行start.bat或start.sh | 可进入提示符“>>>”界面即可 |
| 检查NFS Server启动状态(被测设备仅支持串口时检测) | 通过串口登录开发板,执行mount命令挂载NFS | 可正常挂载文件目录即可 |
| 检查HDC安装成功 | 命令行窗口执行命令:hdc_std -v | 版本不小于1.1.0即可 |
## 编写测试用例 ## 编写测试用例
......
...@@ -28,7 +28,7 @@ XTS子系统当前包括acts与tools软件包: ...@@ -28,7 +28,7 @@ XTS子系统当前包括acts与tools软件包:
## 目录 ## 目录
``` ```
/test/xts /test/xts
├── acts # 测试代码存放目录 ├── acts # 测试代码存放目录
...@@ -102,7 +102,7 @@ XTS子系统当前包括acts与tools软件包: ...@@ -102,7 +102,7 @@ XTS子系统当前包括acts与tools软件包:
当前使用的测试框架是hctest,hctest测试框架支持使用C语言编写测试用例,是在开源测试框架unity的基础上进行增强和适配。 当前使用的测试框架是hctest,hctest测试框架支持使用C语言编写测试用例,是在开源测试框架unity的基础上进行增强和适配。
1. 用例目录规范:测试用例存储到test/xts/acts仓中。 1. 用例目录规范:测试用例存储到test/xts/acts仓中。
``` ```
├── acts ├── acts
│ └──subsystem_lite │ └──subsystem_lite
...@@ -116,14 +116,14 @@ XTS子系统当前包括acts与tools软件包: ...@@ -116,14 +116,14 @@ XTS子系统当前包括acts与tools软件包:
2. src目录下用例编写样例。 2. src目录下用例编写样例。
1.引用测试框架 1.引用测试框架
``` ```
#include "hctest.h" #include "hctest.h"
``` ```
2. 使用宏定义LITE_TEST_SUIT定义子系统、模块、测试套件名称 2. 使用宏定义LITE_TEST_SUIT定义子系统、模块、测试套件名称
``` ```
/** /**
* @brief register a test suite named "IntTestSuite" * @brief register a test suite named "IntTestSuite"
...@@ -159,7 +159,7 @@ XTS子系统当前包括acts与tools软件包: ...@@ -159,7 +159,7 @@ XTS子系统当前包括acts与tools软件包:
3. 测试模块的配置文件(BUILD.gn)样例: 3. 测试模块的配置文件(BUILD.gn)样例:
在每个测试模块目录下新建BUILD.gn编译文件,用于指定编译后静态库的名称、依赖的头文件、依赖的库等;具体写法如下: 在每个测试模块目录下新建BUILD.gn编译文件,用于指定编译后静态库的名称、依赖的头文件、依赖的库等;具体写法如下:
``` ```
import("//test/xts/tools/lite/build/suite_lite.gni") import("//test/xts/tools/lite/build/suite_lite.gni")
hctest_suite("ActsDemoTest") { hctest_suite("ActsDemoTest") {
...@@ -175,7 +175,7 @@ XTS子系统当前包括acts与tools软件包: ...@@ -175,7 +175,7 @@ XTS子系统当前包括acts与tools软件包:
4. acts下BUILD.gn增加编译选项。 4. acts下BUILD.gn增加编译选项。
需要将测试模块加入到acts目录下的编译脚本中,编译脚本路径:test/xts/acts/build_lite/BUILD.gn。 需要将测试模块加入到acts目录下的编译脚本中,编译脚本路径:test/xts/acts/build_lite/BUILD.gn。
``` ```
lite_component("acts") { lite_component("acts") {
... ...
...@@ -220,7 +220,7 @@ XTS子系统当前包括acts与tools软件包: ...@@ -220,7 +220,7 @@ XTS子系统当前包括acts与tools软件包:
当前使用的测试框架是hcpptest,hcpptest测试框架是在开源的googletest测试框架的基础上进行的增强和适配。 当前使用的测试框架是hcpptest,hcpptest测试框架是在开源的googletest测试框架的基础上进行的增强和适配。
1. 规范用例目录:测试用例存储到test/xts/acts仓中。 1. 规范用例目录:测试用例存储到test/xts/acts仓中。
``` ```
├── acts ├── acts
│ └──subsystem_lite │ └──subsystem_lite
...@@ -236,14 +236,14 @@ XTS子系统当前包括acts与tools软件包: ...@@ -236,14 +236,14 @@ XTS子系统当前包括acts与tools软件包:
需要引用gtest.h 如:\#include "gtest/gtest.h" 需要引用gtest.h 如:\#include "gtest/gtest.h"
``` ```
#include "gtest/gtest.h" #include "gtest/gtest.h"
``` ```
2. 定义Setup与TearDown 2. 定义Setup与TearDown
``` ```
using namespace std; using namespace std;
using namespace testing::ext; using namespace testing::ext;
...@@ -271,10 +271,10 @@ XTS子系统当前包括acts与tools软件包: ...@@ -271,10 +271,10 @@ XTS子系统当前包括acts与tools软件包:
普通测试用例的定义:HWTEST(测试套名称, 测试用例名称, 用例标注)。 普通测试用例的定义:HWTEST(测试套名称, 测试用例名称, 用例标注)。
包含SetUp和TearDown的测试用例的定义 :HWTEST_F(测试套名称, 测试用例名称,用例标注)。 包含SetUp和TearDown的测试用例的定义 :HWTEST_F(测试套名称, 测试用例名称,用例标注)。
宏定义包括三个参数:测试套件名称,测试用例名称,用例属性(测试类型、用例粒度、用例级别)。 宏定义包括三个参数:测试套件名称,测试用例名称,用例属性(测试类型、用例粒度、用例级别)。
``` ```
HWTEST_F(TestSuite, TestCase_0001, Function | MediumTest | Level1) { HWTEST_F(TestSuite, TestCase_0001, Function | MediumTest | Level1) {
// do something // do something
...@@ -285,7 +285,7 @@ XTS子系统当前包括acts与tools软件包: ...@@ -285,7 +285,7 @@ XTS子系统当前包括acts与tools软件包:
每个测试模块目录下新建BUILD.gn编译文件,用于指定编译后可执行文件的名称、依赖的头文件、依赖的库等;具体写法如下。每个测试模块将独立编译成.bin可执行文件, 该文件可直接push到单板上进行测试。 每个测试模块目录下新建BUILD.gn编译文件,用于指定编译后可执行文件的名称、依赖的头文件、依赖的库等;具体写法如下。每个测试模块将独立编译成.bin可执行文件, 该文件可直接push到单板上进行测试。
举例: 举例:
``` ```
import("//test/xts/tools/lite/build/suite_lite.gni") import("//test/xts/tools/lite/build/suite_lite.gni")
hcpptest_suite("ActsDemoTest") { hcpptest_suite("ActsDemoTest") {
...@@ -309,7 +309,7 @@ XTS子系统当前包括acts与tools软件包: ...@@ -309,7 +309,7 @@ XTS子系统当前包括acts与tools软件包:
4. acts目录下增加编译选项(BUILD.gn)样例: 4. acts目录下增加编译选项(BUILD.gn)样例:
将测试模块加入到acts目录下的编译脚本中,编译脚本为:test/xts/acts/build_lite/BUILD.gn。 将测试模块加入到acts目录下的编译脚本中,编译脚本为:test/xts/acts/build_lite/BUILD.gn。
``` ```
lite_component("acts") { lite_component("acts") {
... ...
...@@ -346,7 +346,7 @@ XTS子系统当前包括acts与tools软件包: ...@@ -346,7 +346,7 @@ XTS子系统当前包括acts与tools软件包:
格式:mount [nfs服务器IP]:[/nfs共享目录] [/开发板目录] nfs 格式:mount [nfs服务器IP]:[/nfs共享目录] [/开发板目录] nfs
举例: 举例:
``` ```
mount 192.168.1.10:/nfs /nfs nfs mount 192.168.1.10:/nfs /nfs nfs
``` ```
...@@ -377,7 +377,7 @@ XTS子系统当前包括acts与tools软件包: ...@@ -377,7 +377,7 @@ XTS子系统当前包括acts与tools软件包:
用例编写语法采用 jasmine 的标准语法,格式支持ES6格式。 用例编写语法采用 jasmine 的标准语法,格式支持ES6格式。
1. 规范用例目录:测试用例存储到entry/src/main/js/test目录。 1. 规范用例目录:测试用例存储到entry/src/main/js/test目录。
``` ```
├── BUILD.gn ├── BUILD.gn
│ └──entry │ └──entry
...@@ -394,7 +394,7 @@ XTS子系统当前包括acts与tools软件包: ...@@ -394,7 +394,7 @@ XTS子系统当前包括acts与tools软件包:
``` ```
2. index.js示例 2. index.js示例
``` ```
// 拉起js测试框架,加载测试用例 // 拉起js测试框架,加载测试用例
import {Core, ExpectExtend} from 'deccjsunit/index' import {Core, ExpectExtend} from 'deccjsunit/index'
...@@ -425,7 +425,7 @@ XTS子系统当前包括acts与tools软件包: ...@@ -425,7 +425,7 @@ XTS子系统当前包括acts与tools软件包:
``` ```
3. 单元测试用例示例 3. 单元测试用例示例
``` ```
// Example1: 使用HJSUnit进行单元测试 // Example1: 使用HJSUnit进行单元测试
describe('appInfoTest', function () { describe('appInfoTest', function () {
...@@ -447,7 +447,7 @@ hap包编译请参考[标准系统js应用开发指导](https://developer.harmon ...@@ -447,7 +447,7 @@ hap包编译请参考[标准系统js应用开发指导](https://developer.harmon
1. 全量编译 1. 全量编译
**命令** **命令**
``` ```
./build.sh suite=acts system_size=standard ./build.sh suite=acts system_size=standard
``` ```
...@@ -464,7 +464,7 @@ hap包编译请参考[标准系统js应用开发指导](https://developer.harmon ...@@ -464,7 +464,7 @@ hap包编译请参考[标准系统js应用开发指导](https://developer.harmon
Windows工作台下安装python3.7及以上版本,确保工作台和测试设备正常连接。 Windows工作台下安装python3.7及以上版本,确保工作台和测试设备正常连接。
**测试执行目录**(对应编译生成的out/release/suites/acts目录) **测试执行目录**(对应编译生成的out/release/suites/acts目录)
``` ```
├── testcase # 测试套文件存放目录 ├── testcase # 测试套文件存放目录
│ └──xxx.hap # 测试套可执行hap文件 │ └──xxx.hap # 测试套可执行hap文件
...@@ -480,7 +480,7 @@ Windows工作台下安装python3.7及以上版本,确保工作台和测试设 ...@@ -480,7 +480,7 @@ Windows工作台下安装python3.7及以上版本,确保工作台和测试设
2. 界面启动后,输入用例执行指令。 2. 界面启动后,输入用例执行指令。
- 全量执行 - 全量执行
``` ```
run acts run acts
``` ```
...@@ -490,7 +490,7 @@ Windows工作台下安装python3.7及以上版本,确保工作台和测试设 ...@@ -490,7 +490,7 @@ Windows工作台下安装python3.7及以上版本,确保工作台和测试设
![zh-cn_image_0000001200230833](figures/zh-cn_image_0000001200230833.gif) ![zh-cn_image_0000001200230833](figures/zh-cn_image_0000001200230833.gif)
- 模块执行(具体模块可以查看\acts\testcases\) - 模块执行(具体模块可以查看\acts\testcases\)
``` ```
run –l ActsSamgrTest run –l ActsSamgrTest
``` ```
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册