当前位置:   article > 正文

OpenHarmony之XTS_openharmony xts

openharmony xts


xts简介:OpenHarmony兼容性测评主要是验证合作伙伴的设备和业务应用满足OpenHarmony开源兼容性定义的技术要求,确保运行在OpenHarmony上的设备和业务应用能稳定、正常运行,同时使用OpenHarmony的设备和业务应用有一致性的接口和业务体验。
兼容性测试套件版本说明:合作伙伴可以选择任何OpenHarmony 已经发布的LTS(Long TermSupport)或 Release分支进行测试。推荐是最新LTS 或 Release。需要选择最近发布的V版本进行测试(提交测试时,需要满足6个月内发布的版本)。

xts支持如下几种类型:

轻量系统类设备(参考内存≥128KB)
小型系统(参考内存≥1MB)
标准系统类(参考内存≥128MB)
注:当前我们所做的都是标准系统,所以需要使用标准系统的xts来过认证。

xts需要测试认证的模块

acts应用层,hats驱动层,dcts分布式组网
acts:应用兼容性测试套件,看护北向HAP兼容、OpenHarmony开发API兼容;
hats:硬件抽象测试套,看护HDI层接口;
dcts:分布式兼容性测试套,看护分布式兼容;
  • 1
  • 2
  • 3
  • 4

1.XTS环境准备

	编译前的准备工作
	window XTS运行环境配置
	1.python安装
	下载链接:https://www.python.org/downloads/ 
	【python-3.7.4-amd64.exe】本人XTS配置环境时使用的是当前的环境
	2.安装setuptools(pip install setuptools )
	3.安装pyserial(pip install pyserial )
	4.安装rsa( pip install rsa )
	在cmd中执行:
	pip install setuptools	
	在cmd中执行:
	pip install pyserial
	在cmd中执行:
	pip install rsa

	在XTS中有acts应用层,hats驱动层,dcts分布式,三个套件都需要进行编译验证测试,代码目录在test/xts中,会有acts dcts hats tools 四个目录
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

XTS编译

	以acts为例:全量编译指导(//test/xts)
	a). 全量编译 test/xts/acts目录下执行编译命令:./build.sh product_name=your_product_name system_size=standard suite=acts
	b). 单个子系统编译,test/xts/acts目录下执行编译命令:./build.sh product_name=your_product_name system_size=standard target_subsystem=××××
	
	编译生成目录:
	在全量编译acts后,会生成在out/product_name/suites/acts目录.

	XTS运行
	将编译之后的suites拷贝到windows上。2.配置hdc_std环境变量。(在官方文档中有,自行查阅)
	执行
	打开acts目录,双击run.bat会出现如下图所示,则表示运行环境已配置完成。
	.
	├── config# 配置文件
	├── run.bat # window 平台测试套启动执行文件
	├── run.sh # linux 平台测试套启动执行文件
	├── testcases # 测试套文件存放目录
	└── tools	# 测试框架工具目录
	3 directories, 2 files
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

XTS在windows中执行示例

run acts						// 全量执行
run -l testmodule 		        // 单模块编译
  • 1
  • 2

查看测试报告

在这里插入图片描述

	进入acts\reports\,获取当前的执行记录,打开“summary_report.html”可以获取到测试报告。例:
	acts模块共计:174个。
	成功执行的模块:166个。
	用例共计9781个,通过9570个,失败310个,阻塞1个,8个模块未执行
  • 1
  • 2
  • 3
  • 4

XTS编写示例

1.xts测试组件结构目录;
2.以上为xts在编写时的目录结构以及文件,大部分文件不需要做修改或者只需要做一个小的改动;以
下是需要修改的文件以及说明
a. BUILD.gn(1)
b. main/config.js配置文件只需要将其包名等修改为自己定义的组件名称即可
.

import(“//build/ohos_var.gni”)
group(“xxx_standard”) { # xts在编译时需要新增的测试模块,下面deps为组件
生成的hap包
testonly = true
if (is_standard_system) {
deps = [ “midcard:midcar_js_test” ] # 组件hap包}
}
c. BUILD.gn(2) 脚本文件 ,参考openharmony其他目录中的测试组件中的脚本来进行编写,只需要修改其名称即可;
d. 在page文件中,index.js文件中,只需要修改加载模块名称即可,修改成自己的模块名;如:
e. Test.json文件,主要是对测试用例模块名以及测试时的时间的设置;以下注释过的地方需要做一个修改即可(除type以外)。
{
"
app": {
“bundleName”: “com.test.midcar”, # 将midcar修改成自己定义的组件名称,在当前
文件后面的代码中的名称同样修改成自己定义的组件名称
“vendor”: “test”,
“version”: {
“code”: 1,
"
name
"
:
"
1.0"
},
“apiVersion”: {
“compatible”: 5,
“target”: 5
}
},
import(“//test/xts/tools/build/suite.gni”)ohos_js_hap_suite(“midcar_js_test”) {hap_profile = “./src/main/config.json"deps = [
“:midcar_js_assets”,”:midcar_js_resources",
]
certificate_profile = “./signature/openharmony_sx.p7b"hap_name = “ActsMidcarTest”
}
ohos_js_assets(“midcar_js_assets”) {source_dir = “./src/main/js/default”
}
ohos_resources(“midcar_js_resources”) {sources = [ “./src/main/resources” ]hap_profile = “./src/main/config.json”
}
require(‘…/…/test/List.test’) # 加载json测试文件
{
“description”: “Configuration for midcar Tests”, # 说明描述"driver”: {
“type”: “JSUnitTest”, # 测试框架
“test-timeout”: “60000”, # 超时时间设置
“package”: “com.test.midcar”, # 该字段要与config.json 中的名称要保持一致,如果不
同则在执行XTS的时候会报无法启动功能,解析错误failed to

start ability.

error: resolve ability err.

“shell-timeout”: “60000” # 超时时间设置
},
e. test/midcar.test.js 该文件就是对对应的组件进行接口测试,需要自己做编码。3. 在test_packages.gni文件中添加对应的代码;如下:
4. 以上就是从创建自己的xts测试到修改以及自己编码的全过程。在执行./build.sh
product_name=XXX system_size=standard suite=acts;如下表示已添加进去。
“kits”: [
{
“test-file-name”: [
“ActsMidcarTest.hap” # 编译后生成的hap包名称,],“type”: “AppInstallKit”,“cleanup-apps”: true
}
]
}

在 _all_test_packages[]中添加如下脚本编码即可;

_
all_test_packages = [
A C T S R O O T / g l o b a l : g l o b a l " , " {ACTS_ROOT}/global:global"," ACTSROOT/global:global","{ACTS_ROOT}/security:security”,“ A C T S R O O T / u s e r i a m : u s e r i a m " , " {ACTS_ROOT}/useriam:useriam"," ACTSROOT/useriam:useriam","{ACTS_ROOT}/multimedia:multimedia”,“ A C T S R O O T / a p p e x e c f w k : a p p e x e c f w k " , " {ACTS_ROOT}/appexecfwk:appexecfwk"," ACTSROOT/appexecfwk:appexecfwk","{ACTS_ROOT}/account:account”,“ A C T S R O O T / c o m m u n i c a t i o n : c o m m u n i c a t i o n " , " {ACTS_ROOT}/communication:communication"," ACTSROOT/communication:communication","{ACTS_ROOT}/notification:notification”,“ A C T S R O O T / a a f w k : a a f w k " , " {ACTS_ROOT}/aafwk:aafwk"," ACTSROOT/aafwk:aafwk","{ACTS_ROOT}/miscservices:miscservices”,“ A C T S R O O T / p o w e r m g r : p o w e r m g r " , " {ACTS_ROOT}/powermgr:powermgr"," ACTSROOT/powermgr:powermgr","{ACTS_ROOT}/startup:startup”,“ A C T S R O O T / s e n s o r s : s e n s o r " , " {ACTS_ROOT}/sensors:sensor"," ACTSROOT/sensors:sensor","{ACTS_ROOT}/distributeddatamgr:distributeddatamgr”,“ A C T S R O O T / u p d a t e r : u p d a t e " , " {ACTS_ROOT}/updater:update"," ACTSROOT/updater:update","{ACTS_ROOT}/graphic:graphic”,“ A C T S R O O T / a c e : a c e " , " {ACTS_ROOT}/ace:ace"," ACTSROOT/ace:ace","{ACTS_ROOT}/storage:storage”,“ A C T S R O O T / c o m p i l e r u n t i m e : c o m p i l e r u n t i m e " , " {ACTS_ROOT}/compileruntime:compileruntime"," ACTSROOT/compileruntime:compileruntime","{ACTS_ROOT}/usb:usb”,“ A C T S R O O T / m u l t i m o d a l i n p u t : m u l t i m o d a l i n p u t " , " {ACTS_ROOT}/multimodalinput:multimodalinput"," ACTSROOT/multimodalinput:multimodalinput","{ACTS_ROOT}/resourceschedule:resourceschedule”,“ A C T S R O O T / t e l e p h o n y : t e l e p h o n y " , " {ACTS_ROOT}/telephony:telephony"," ACTSROOT/telephony:telephony","{ACTS_ROOT}/hiviewdfx:hiviewdfxtestacts”,“ A C T S R O O T / l o c a t i o n : l o c a t i o n " , " {ACTS_ROOT}/location:location"," ACTSROOT/location:location","{ACTS_ROOT}/settingsdata:settingsdata”,“ A C T S R O O T / b a r r i e r f r e e : b a r r i e r f r e e " , " {ACTS_ROOT}/barrierfree:barrierfree", " ACTSROOT/barrierfree:barrierfree","{ACTS_ROOT}/xxx:xxx_standard”, # 在此添加自己的xts
测试子的子系统]
5.在编译完成后在对应的目录中能看到对应的hap包以及json等文件;如下图所示:
6.在编译完成后,在对应的目录out/product_name/suites/将其拷贝到本地;7.在编译出来的ActsMidcarTest.json文件中有几个关键点如下:
1,test-timeout 测试时设置的时间限制,如果在测试中时间超过了60000ms则会报未执行的错误,2,cleanup-apps在该用例执行完成以后,可选择不卸载当前的测试程序。
2.XTS运行
1.在配置好环境以后,双击run.bat执行启动测试套件;2.在使用run -l ActsMidcarTest 执行该用例;
{
“description”: “Configuration for midcar Tests”,“driver”: {
“type”: “JSUnitTest”,“test-timeout”: “60000”, # 测试用例执行时间限制
“package”: “com.test.midcar”,“shell-timeout”: “60000” # 命令运行执行时间限制
},
“kits”: [
{
“test-file-name”: [
“ActsMidcarTest.hap”
],
“type”: “AppInstallKit”,“cleanup-apps”: true
}
]
}
注:上述报错是由于Test.json中package的字段和config.json中字段bundleName不一致导致的。修改后会运行成功,如下图所示:
3.测试完成后在report文件夹中有对应的log文件,例如:
4.打开summary_report.html即可查看结果,结果如下图所示:
4.XTS总结
1.XTS运行报错常见问题
1.执行run.bat时,开发板主机拒绝链接;
原因:由于开发板过热导致或一些其他原因所导致,解决方法:重启开发板即可,或者重烧录
2.在执行run.bat,执行测试用例后,发现执行出现ERROR或是服务启动失败。
原因:由于文件路径中有中文所导致
解决方法:使用英文路径即可解决
2.XTS测试不通过的常见问题
1.缺少动态库,加解密(在修改成64位时出现的问题)
解决方法:编译对应的so,放在对应的目录下(system/lib64)
2.库文件与之不匹配,由于我们编译的是64位本身的so是32位导致的
解决方法:使用file命令查看so是否是64位,重新编译so,
3.蓝牙问题,蓝牙未打开和未匹配另一个蓝牙所导致的,如:ActsBluetoothOnHapTest.解决方法:打开蓝牙即可测试通过。
4.和当前网络相关,未链接网络所导致的,如:ActP2PJSApiTest,ActSystemFetchTest,解决方法:链接网络即可测试通过。
5.当前GPU渲染有关,由于openharmony自带的so的版本较老所导致,所以导致XTS测试不通过。
如:ActWebGLTest
解决方法:使用mesa3d鸿蒙化之后的so,即可编译通过。注:当前so已完成鸿蒙化。
具体参考链接如下:https://blog.csdn.net/u013131156/article/details/124338583?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166961863916782412555700%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=166961863916782412555700&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaidue
nd~default-1-124338583-null-null.142v66control,201v3add_ask,213v2t3_esquery_v3&utm_term=openharmony%20mesa
3d&spm=1018.2226.3001.4187
3.XTS认证流程
1.测评流程:
1.企业账号申请;
https://old.openatom.cn/atomavatar/#/register?redirect=%2Fauthorize%3Fresponse_type%3Dcode%26client_id%3D6bdacef0a8bd11ec938bd9550d2decfd%26redirect_uri%3Dhttps%3A%2F%2Fcompatibility.openharmony.cn%2Fconsole%26appName%3DOpenHarmony%E8%AE%A4%E8%AF%81%E5%B9%B3%E5%8F%B0%26scope%3D0,1,2,3%26state%3D%2Fpersonal
2.XTS自测;(ACTS,HATS,DCTS)完成PCS自检
1),HAT,ACTS需要资源文件,资源文件在https://gitee.com/openharmony-sig/compatibility/tree/master/test_suite/resource/OpenHarmony-3.1-Release/中,自行下载即可。下载后将对应的资源文件放到对应的目录,如ACTS的则放到acts的目录下,如下图所示:
2),PCS自检;例在XX中所填写的表格;表格如下:
XXXXXXX
3),PCS自检表格下载链接:https://www.openharmony.cn/certification/document/pcs
;根据自己当前版本的需要下载对应的版本,如我们当前用的是3.1.2 Release 移植的标准系统,则下载[标准系统 PCS3.1 自检表]。
注:在测试时,如遇到硬件不支持的则可以申请豁免,如音视频等和硬件相关的,在测试验证过程中需要提前得知当前模块是否需要申请豁免;
3.在完成ACTS和HATS测试验证进度在70%-100%时,申请DCTS测试所需要的组网盒子,申请流程具体需要项目经理协助处理。
4.完成DCTS,ACTS,HATS 验证以及豁免部分组件和PCS自检表格之后,按照上图的第三步执行后面的流程。
5.在提交时:1.需要提交我们测试的报告可以是多个和单个测试的,但是要有备注, 2.需要提交镜像烧录文件说明以及镜像文件
3. PCS自检表以及豁免邮件。
6.等待基金会验证审核(可能有疑问需要一起协助基金会的人去处理)
7.审核完成后等待证书发放(2-3天)注:兼容性测试审批周期:14天;
4.XTS认证注意事项
1.在验证时,确保当前版本是6个月之内的版本
2.确保当前系统是32位或者64位,如果是64位3.1.4及其一下版本则需要提前沟通豁免ACTS部分不能豁免的组件,以及DCTS和HATS所有测试项。
3.XTS认证流程中的PCS自检为当前的最小集,覆盖不全,其他的如果需要豁免,说明原因理由,及时和基金会的人确认。
4.在3.1.2中若测试使用HATS时,有部分测试用例会直接报错,则需要使用最新或者3.1版本的Xdevice的工具来替换当前3.1.2中的工具。
5.在跑XTS遇到不通过时,有以下几种解决方法:1.查看当gitee上对应版本的issue,查看是否有改动
而自己代码未更新的,若未更新则附上issue单申请豁免
2.若ActsWindowHapTest该组件测试报
Unavailable,则在单独跑该模块时,在测试时使用鼠标或者触屏在上滑动一下,方可测试通过,因为当前测试组件的窗口层级问题会导致页面无法正常退出。
3.其他报错问题可参考XTS总结的第一条和第二条;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/312808
推荐阅读
相关标签
  

闽ICP备14008679号