7 Star 20 Fork 130

OpenHarmony-SIG / compatibility

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
兼容性测试认证指导书.md 16.47 KB
一键复制 编辑 原始数据 按行查看 历史
张攀 提交于 2023-03-23 17:29 . 更新文件

兼容性认证服务

OpenHarmony兼容性认证主要是验证合作伙伴的设备和业务应用满足OpenHarmony开源兼容性定义的技术要求,确保运行在OpenHarmony上的设备和业务应用能稳定、正常运行,同时使用OpenHarmony的设备和业务应用有一致性的接口和业务体验。

OpenHarmony兼容性认证服务包括:产品兼容性技术规范文档与兼容性测试两部分,本文重点介绍兼容性测试。

兼容性测试包括:acts、hats、dcts

OpenHarmony兼容性测试需要合作伙伴获取代码和兼容性测试套,并完成自测,取得兼容性测试报告后,在认证流程上传兼容性测试报告供开放原子开源基金会团队进行审核或抽测。兼容性测试的套件范围:

acts(application compatibility test suite)应用兼容性测试套件,看护北向HAP兼容、OpenHarmony开发API兼容。

hats(Hardware Abstraction Test Suite )硬件抽象测试套,看护HDI层接口。

dcts(Distributed Compatibility Test Suite )分布式兼容性测试套,看护分布式兼容(待上线)

本文已acts为例介绍,其余类似参考。

兼容性认证版本要求

兼容性测试套件版本说明:

合作伙伴可以选择任何OpenHarmony 已经发布的LTS(Long Term Support)分支进行认证,推荐是最新LTS。

选择LTS分支后,需要选择最近发布的V版本进行认证(提交认证时,需要满足6个月内发布的版本)。

兼容性测试认证审批周期:14天;

兼容性认证设备类型介绍

OpenHarmony支持如下几种设备类型:

轻量系统类设备(参考内存≥128KB)

面向MCU类处理器例如Arm Cortex-M、RISC-V 32位的设备,硬件资源极其有限,支持的设备最小内存为128KiB,可以提供多种轻量级网络协议,轻量级的图形框架,以及丰富的IOT总线读写部件等。可支撑的产品如智能家居领域的连接类模组、传感器设备、穿戴类设备等。

小型系统设备(参考内存≥1MB)

面向应用处理器,例如Arm Cortex-A的设备,参考内存≥1MB,提供更高的安全能力,提供标准的图形框架,提供视频编解码的多媒体能力。典型产品有智能家居领域的IPCamera、电子猫眼、路由器以及智慧出行域的行车记录仪等。

标准系统类设备(参考内存≥128MB)

面向应用处理器,例如Arm Cortex-A的设备,参考内存≥128MB,提供增强的交互能力,提供3D GPU以及硬件合成能力,提供更多控件以及动效更丰富的图形能力,提供完整的应用框架。典型产品有高端的冰箱显示屏等

认证流程概述

OpenHarmony设备兼容性认证的流程。

image-20211205100627429

兼容性认证主要步骤如下:

步骤 1 合作伙伴获取OpenHarmony源码。

步骤 2 合作伙伴获取设备兼容性技术规范文档。

步骤 3 合作伙伴本地执行兼容性测试套件。

步骤 4 合作伙伴上传兼容性报告到OpenHarmony官网

步骤 5 开放原子开源基金会审核开发者上传的报告,给出审核结果,若审批通过,到步骤8;若抽检,到步骤6,若审批不通过,结束流程。

步骤 6 开放原子开源基金会启动抽检流程,上传测试套件包到网站;

步骤 7 合作伙伴下载抽检测试套件包,并在本地执行,生成测试报告后上传到OpenHarmony官网

步骤 8 测试报告审核通过后,OpenHarmony兼容性认证通过。

源码获取

获取OpenHarmony源码,具体步骤请参考链接

兼容性测试执行环境搭建

配置Windows环境

安装python3.7及以上版本

若显示出python对应版本则表示安装成功。

img

安装setuptools(pip install setuptools )

在cmd中执行命令:

pip install setuptools  

安装pyserial(pip install pyserial )

在cmd中执行命令:

pip install pyserial  

出现如下信息表示安装成功。

安装rsa( pip install rsa )

在cmd中执行命令:

 pip install rsa 

轻量系统兼容性测试认证指导

说明:轻量系统因系统能力限制,兼容性测试在系统初始化阶段进行;并且各设备烧录工具存在差异,导致自动化工具(xDevice工具)无法实现真正的自动适配,因此认证执行方式不对合作伙伴进行限制。

流程如下:

步骤1 编译适配:XTS子系统加入到编译组件中,随版本一起编译;

步骤2 本地执行:完成兼容性测试;

编译适配

XTS子系统加入到编译组件中,随版本一起编译

举例:以hispark_pegasus为例。

1,vendor下增加xts_acts与xts_tools组件定义(vendor\hisilicon\hispark_pegasus\config.json)

{
    "subsystem": "test",
    "components": [
       { "component": "xts_acts", "features":[] },
       { "component": "xts_tools", "features":[] }
     ]
},

2 ,使用hb命令触发debug版本(非debug版本不会触发测试编译)

注意事项

hispark_pegasus使用riscv gcc编译工具链与SCons构建工具完成系统编译工作,其他设备如果编译工具链不同需要参考自行完成编译与链接操作。

下面介绍hispark_pegasus的XTS子系统编译流程以供参考。

1,通过hb工具读取系统配置文件(其中涉及文件:vendor\hisilicon\hispark_pegasus\config.json)获取参与编译的子系统以及组件信息;

2,通过gn工具读取 BUILD.gn文件并执行生成 .a文件(XTS子系统gn文件位置:test\xts\acts\build_lite\BUILD.gn);

all_features会读取轻量系统全部acts测试套件:

if (ohos_kernel_type == "liteos_m") {
  all_features += [
    "//test/xts/acts/communication_lite/lwip_hal:ActsLwipTest",
    "//test/xts/acts/communication_lite/wifiservice_hal:ActsWifiServiceTest",
    "//test/xts/acts/utils_lite/file_hal:ActsUtilsFileTest",
    "//test/xts/acts/startup_lite/syspara_hal:ActsParameterTest",
    "//test/xts/acts/iot_hardware_lite/iot_controller_hal:ActsWifiIotTest",
    "//test/xts/acts/utils_lite/kv_store_hal:ActsKvStoreTest",
  "//test/xts/acts/security_lite/huks/liteos_m_adapter:ActsHuksHalFunctionTest",
    "//test/xts/acts/hiviewdfx_lite/hilog_hal:ActsDfxFuncTest",
    "//test/xts/acts/hiviewdfx_lite/hievent_hal:ActsHieventLiteTest",
   "//test/xts/acts/distributed_schedule_lite/system_ability_manager_hal:ActsSamgrTest",
    "//test/xts/acts/update_lite/dupdate_hal:ActsUpdaterFuncTest",
    "//test/xts/acts/startup_lite/bootstrap_hal:ActsBootstrapTest",
  ]

判断非debug版本,all_features置空(非debug版本XTS不参与编译):

  if (ohos_build_type == "debug" && ohos_test_args != "notest") {
    _all_features = ""
    _product_json = rebase_path("${product_path}/config.json")
    foreach(one_feature, all_features) {
      _all_features = _all_features + one_feature + ","
    }
    _args = [
      "--method_name",
      "filter_by_subsystem",
      "--arguments",
      "testsuites=${_all_features}#product_json=${_product_json}",
    ]
    features += exec_script(rebase_path("//test/xts/tools/lite/build/utils.py"),
                            _args,
                            "list lines")
  }

all_features与vendor\hisilicon\hispark_pegasus\config.json子系统组件进行对比,存在的子系统组件才会参与最后编译;

最终编译生成.a归档路径:out\hispark_pegasus\wifiiot_hispark_pegasus\libs,其他模组参考类似找到.a:

其中XTS子系统的.a归档格式libmodule_{测试套件模块名称}.a,以及测试框架.a 归档格式:libhctest.a;

举例:

libmodule_ActsParameterTest.a
libhctest.a

3,通过SCons构建工具完成链接操作(其中涉及文件:device\hisilicon\hispark_pegasus\sdk_liteos\SConstruct),其他设备根据编译工具链选择自行完成链接工作;

if app_name != "wifiiot_app":
    env['LIBS'] = list(map(lambda x:'-l%s'%x, env_cfg.get_libs()))
else:
    env['LIBS'] = list(map(lambda x:'-l%s'%x, env_cfg.get_libs())) + ['--whole-archive'] + list(map(lambda x:'-l%s'%x, env_cfg.get_ohos_libs())) + ['--no-whole-archive']
env.Append(LIBS = app_builder.get_app_libs())
env.Append(LIBS = '-lwifi_flash')
env.Append(LIBS = '-lwifi')
env.Append(LIBS = '-llitekernel_flash')
env.Append(LIBS = '-lsystem')

Sconstruct脚本中链接了测试套对应.a ,没有显示调用所以需要指定 —no-whole-archive。

本地执行:完成兼容性测试

测试组网

image-20211205151834600

  • 轻量系统设备为使用OpenHarmony的被测设备。
  • Windows工作台操作中心,通过串口连接轻量系统设备,进行版本烧录和测试命令下发等。

执行兼容性测试套件

举例:以hispark_pegasus产品执行acts为例。

手工执行兼容性测试套件,需要使用烧录工具以及串口工具,操作步骤如下:

1,获取编译镜像。

在如下目录获取版本镜像:out/hispark_pegasus/wifiiot_hispark_pegasus/。

说明: 判断当前版本镜像是否集成acts测试套件方法:在map文件中查看对应.a是否被编译即可。

2,版本镜像烧录。

测试步骤。

(1)使用串口工具登录模组,并保存串口打印信息。

(2)重启模组,启动过程中兼容性测试自动化执行,等待执行完,查看串口日志。

img

3,测试结果分析指导。

(1)基于串口打印日志进行分析;

(2)每个测试套件执行以“Start to run test suite”开始,以“xx Tests xx Failures xx Ignored”结束。

4,测试结果归档。

小型系统兼容性测试认证指导

说明:小型系统不支持usb调试,兼容性测试执行过程依赖串口与网口/WIFI,流程如下:

步骤1 编译适配:XTS子系统加入到编译组件中,参与编译;

步骤2 本地执行:完成兼容性测试;

编译适配

XTS子系统加入到编译组件中,参与编译

举例:以hispark_taurus为例。

1,vendor下增加xts_acts与xts_tools组件定义(vendor\hisilicon\hispark_taurus\config.json)

{
    "subsystem": "test",
    "components": [
       { "component": "xts_acts", "features":[] },
       { "component": "xts_tools", "features":[] }
     ]
},

2 ,使用hb命令触发debug版本(非debug版本不会触发测试编译)

在out\hispark_taurus\ipcamera_hispark_taurus\suites\acts目录下生产兼容性测试套件

image-20211205112546943

本地执行:完成兼容性测试

举例:以hispark_taurus为例。

测试组网

image-20211205150722700

  • 小型系统设备为使用OpenHarmony的被测设备。
  • Windows工作台操作中心,通过串口连接小型系统设备,进行版本烧录和测试命令下发等。
  • NFS服务器主要是用来存储测试用例和测试脚本,通过NFS的方式挂载在小型系统设备上去执行用例,实现和小型系统设备的测试交互。
  • 网关的作用就是连接小型系统设备和NSF服务器,实现被测设备和NFS服务器的互通。

配置测试环境

被测设备网络配置:

被测设备网络配置有多种方法,目的是把被测设备与NFS服务器配置在同一个网段,可以互相访问。被测设备可以使用自己的配网方式进行联网设备,也可以通过设备命令进行网络配置。(以下为被测设备网络配置的一个例子)

1,连接被测设备到Windows,Windows工作台识别被测设备,且能够看到对应的COM号,如下图所示;

image-20211205111227827

2,使用串口连接工具连接设备,完成被测设备IP配置;

串口连接被测设备后,查看对应的IP地址,命令行模式下,输入ifconfig,确定IP地址是否跟Windows的IP地址在同一个网段,如果不是同一个网段,可以通过命令配置

ifconfig eth0 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.1

image-20211205111408788

测试通信,能够ping通被测设备,被测设备的网络配置成功。

image-20211205111441358

Windows下NFS服务器配置:

NFS全称为Network File System,是一种分布式文件系统,力求客户端主机可以访问服务器端文件,在此测试环境中,NFS服务器主要是用来存储测试用例和测试脚本,通过NFS的方式挂载在小型系统设备上去执行用例,实现和小型系统设备的测试交互。

NFS服务器可使用主流商用软件进行搭建,也可以使用Windows Server进行部署,请用户根据日常搭建方式,配置好NFS服务,最后能够保证NFS Server上设置的NFS共享目录,被测设备能够进行访问,并且使用mount命令成功。

当NFS服务配置好之后,被测设备可以访问NFS服务端的nfs共享文件,格式和举例如下:

**格式:**mount [nfs服务器IP]:[/nfs共享目录] [/Ipcamera开发板目录] nfs

举例:mount执行成功,说明NFS配置正确。

mount 192.168.1.11:/d/work /nfs nfs 

配置运行环境

  1. Windows上已获取到编译文件acts.zip,解压生成acts目录。

  2. 从“https://gitee.com/openharmony-sig/compatibility/tree/master/test_suite/OpenHarmony-3.0-LTS”下载resource文件,拷贝到acts\resource目录下。

  3. 修改acts\config\user_config.xml的配置。

    (1)完成小型系统设备(ipcamera)的com配置;

    举例:智慧视觉类设备在PC端映射端口为COM18,完成红框中配置。

    (2)完成小型系统设备(ipcamera)NfsServer节点配置。

    IP:Nfs服务器地址

    username:Nfs服务器用户名

    password:Nfs服务器密码

    port:Nfs服务器端口

    dir:Nfs服务器用于存放挂载文件的路径

    举例:NfsServer IP为192.168.1.22,Nfs共享目录为D:\work,配置如下图。

image-20211205113043463

执行兼容性测试套件

  1. 在Windows工作台上,获取已经编译完成的测试套件,在Windows命令窗口进入对应目录,直接执行acts\run.bat。

    2.界面启动后,输入用例执行指令。

  • 全量执行

    run acts
  • 模块执行(具体模块可以查看\acts\testcases)

    run –l ActsSamgrTest

等待执行完成。

  1. 查看测试报告。

进入acts\reports\,获取当前的执行记录,打开“summary_report.html”可以获取到测试报告。

标准系统兼容性测试认证指导

步骤1 编译兼容性套件;

步骤2 本地执行:完成兼容性测试;

编译兼容性套件

举例:以hispark_taurus为例。

全量编译 test/xts/acts目录下执行编译命令: ./build.sh suite=acts system_size=standard

测试用例输出目录:out/release/suites/acts/testcases

测试框架&用例整体输出目录:out/release/suites/acts(编译用例时会同步编译测试套执行框架)

本地执行:完成兼容性测试与报告归档

举例:以hispark_taurus为例。

测试组网

image-20211205151715321

  • 标准系统设备为使用OpenHarmony的被测设备。
  • Windows工作台操作中心,通过USB连接标准系统设备,进行版本烧录和测试命令下发等。

配置运行环境

  1. Windows上已获取到兼容性测试套件acts.zip,解压生成acts目录。
  2. 从“https://gitee.com/openharmony-sig/compatibility/tree/master/test_suite/OpenHarmony-3.0-LTS”下载resource.zip文件,解压后,拷贝到acts\resource目录下。
  3. 修改acts\config\user_config.xml的配置。

image-20211205114951182

其中ip为执行测试所在电脑的IP;port是dhc端口;sn为执行设备的序列号。

执行兼容性测试套件

  1. 在Windows工作台上,找到从Linux服务器上拷贝下来的测试套件用例目录,在Windows命令窗口进入对应目录,直接执行acts\run.bat。

    2.界面启动后,输入用例执行指令。

  • 全量执行

    run acts
  • 模块执行(具体模块可以查看\acts\testcases)

    run –l ActsSamgrTest

等待执行完成。

  1. 查看测试报告。

进入acts\reports\,获取当前的执行记录,打开“summary_report.html”可以获取到测试报告。

1
https://gitee.com/openharmony-sig/compatibility.git
git@gitee.com:openharmony-sig/compatibility.git
openharmony-sig
compatibility
compatibility
master

搜索帮助