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.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 四个目录
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
XTS在windows中执行示例
run acts // 全量执行
run -l testmodule // 单模块编译
查看测试报告
进入acts\reports\,获取当前的执行记录,打开“summary_report.html”可以获取到测试报告。例:
acts模块共计:174个。
成功执行的模块:166个。
用例共计9781个,通过9570个,失败310个,阻塞1个,8个模块未执行
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
}
]
}文章来源:https://www.toymoban.com/news/detail-831189.html
在 _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总结的第一条和第二条;文章来源地址https://www.toymoban.com/news/detail-831189.html
到了这里,关于OpenHarmony之XTS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!