OpenHarmony-XTS测试
- OpenHarmony-XTS测试
- 环境搭建
- 测试准备
- 开始运行
- PS
- 关于使用AGENT解决
OpenHarmony-XTS测试
针对OpenHarmony版本进行XTS测试使用记录。
windows环境。
以acts套件为例。
环境搭建
- 获取测试套件,两种方法
1)官网下载:https://www.openharmony.cn/certification/document/xts/
2)版本中获取:
out/产品/suites/acts/acts#
ls config run.bat run.sh sign testcases tools
需要自己进行编译:
test/xts/act# ./build.sh system_size=standard target_arch=riscv64 product_name=产品
- 关于资源文件
1) 测试过程中需要用到一些资源文件,一般放置于测试工程的resource目录下,resource跟其他测试文件位于同一目录。
2) 资源文件不会在编译工程中生成,需要从官网下载,且需要对应版本。
https://www.openharmony.cn/systematic?tab=xts
3) 部分文件需要自己重新编译,比如E:\XTS\dcts\resource\data\64bit\dsoftbusTest,E:\XTS\dcts\resource\data\64bit\socketdsoftbusTest。
4) 缺少资源文件会导致部分测试项失败,比如ActsToolChainTest。 - 版本打开配置,然后编译产品烧录至设备
device/board/组织/产品/cfg/default.para
const.security.developermode.state=1
或者
const.security.developermode.state=true
windows下安装HDC,配置环境变量并连接待测设备
HDC下载:https://ci.openharmony.cn/workbench/cicd/codecontrol/listwindows下配置测试需要的相应环境
参考https://www.openharmony.cn/certification/document/guid注意:安装python3时不要使用3.13版本,他里面没有telnetlib,运行测试脚本时会报错。设备可能用到的配置:
//UBOOT固定mac:envdefault-a setenv ethaddr94:47:B0:18:64:F3 saveenv reset//设置电源模式:power-shell setmode602//HDC配置:param set persist.hdc.mode.tcp enable//串口设置打印echo0417>/proc/sys/kernel/printk测试准备
- 待测设备保持屏幕常亮(使用上面的power-shell setmode 602命令等方法),连接wifi(或者ETH有线网),打开蓝牙。有些测试项(如camera)会向用户申请权限,需要用户手动点击同意,该测试项才能继续运行,否则可能会超时导致测试结果为失败或者blocked。
- 双击打开run.bat或者在power shell中手动运行(./run.bat)。该脚本会安装tools目录下的一些xdevice。运行过程中有可能报错,一般是windows环境报错,根据报错解决即可。有时会有权限问题,请使用管理员权限运行run.bat或者power shell。
Please install setuptools first!
pip install --upgrade setuptools
新版本的setuptools不默认包含easy_install ,卸载setuptools然后进行指定版本安装
PS C:\Program Files> cd .\Python312\Scripts
PS C:\Program Files\Python312\Scripts> pip.exe install --upgrade setuptools
Requirement already satisfied: setuptools in c:\program files\python312\lib\site-packages (77.0.3)
PS C:\Program Files\Python312\Scripts>
PS C:\Program Files\Python312\Scripts> python -m ensurepip --upgrade
Looking in links: c:\Users\刘赛\AppData\Local\Temp\tmp74la7bbu
Requirement already satisfied: pip in c:\program files\python312\lib\site-packages (25.0.1)
PS C:\Program Files\Python312\Scripts> python -m pip install --upgrade pip
Requirement already satisfied: pip in c:\program files\python312\lib\site-packages (25.0.1)
PS C:\Program Files\Python312\Scripts> pip list | findstr setuptools
setuptools 77.0.3
PS C:\Program Files\Python312\Scripts>python -m easy_install --help
C:\Program Files\Python312\python.exe: No module named easy_install
PS C:\Program Files\Python312\Scripts>pip uninstall setuptools -y
Found existing installation: setuptools 77.0.3
Uninstalling setuptools-77.0.3:
Successfully uninstalled setuptools-77.0.3
PS C:\Program Files\Python312\Scripts>pip install setuptools==19.2
Collecting setuptools==19.2
Downloading setuptools-19.2-py2.py3-none-any.whl.metadata (11 kB)
Downloading setuptools-19.2-py2.py3-none-any.whl (463 kB)
Installing collected packages: setuptools
Successfully installed setuptools-19.2
PS C:\Program Files\Python312\Scripts>python -m easy_install --help
Traceback (most recent call last):
File “”, line 198, in _run_module_as_main
File “”, line 88, inrun_code
File “C:\Program Files\Python312\Lib\site-packages\easy_install.py”, line 4, in
from setuptools.command.easy_install import main
File "C:\Program Files\Python312\Lib\site-packages\setuptools_init.py", line 5, in
import distutils.core
ModuleNotFoundError: No module named ‘distutils’
PS C:\Program Files\Python312\Scripts>
依然不可用,查了下python3.12与大于68.0.0版本的setupstools兼容,然而在58.0.0中setupstools已经移除easy_install,所以建议回退python版本。。。或者建议测试工具维护方更新测试脚本
卸载python3.12,安装py3.7.8
https://www.python.org/downloads/windows/
权限问题报错:
- 偶尔会有运行一段时间后关机打开再运行就会报一些莫名其妙的错误导致run.bat运行失败,暂时没有找到好的解决方法,删掉换个新的就能解决。
- 正常可运行的界面如下:
退出使用quit命令。
如测试未完成手动使用ctrl+c等命令强行退出,建议重新退出再次运行run.bat。
关于DCTS组网:需要准备测试盒子,测试盒子安装Dcct以及诸多测试服务端HAP,待测设备安装Dcct,两设备位于同一网络,两边打开Dcct进行配对。该Hap第一次打开时需要给权限,他要的全同意即可。
1) 选择网络连接方式
2) 发现对端设备,两边打开配备发现后从任意一侧(测试盒子或者待测设备)发起即可
3)发起连接至已连接状态(跟连蓝牙流程基本一样)
开始运行
全量执行:run acts
模块执行:run -l ActsToolChainTest
指定执行:run -l ActsAceWebEnhancedTestTwo -ta class:WebViewEnumAndSetWebControllerTest#testCacheMode004
其他的遇到后进行补充,可以使用run --help自行查看。
输出结果位于reports文件夹对应的运行时间子文件夹下:
打开文件夹中的html查看测试结果,打开log可以针对failed或者blocked的用例进行初步定位。
在OH版本中对问题进行修复:编译新的版本,重新烧录后再进行测试即可。
修改测试套件:代码位于test/xts/acts目录,grep对应的测试用例名即可,修改后重新编译并将out/产品/suites/acts/acts/testcases 目录对应的.moduleInfo、.hap、.json文件拷贝至testcases后重新run即可。
out/产品/suites/acts/acts# ls
config run.bat run.sh sign testcases tools
test/xts/act# ./build.sh system_size=standard target_arch=riscv64 product_name=产品
PS
有些测试失败是测试用例本身编写的问题导致。
比如web连接百度、京东等网页请求相关信息,不同时间响应可能会发生改变。
比如版本更新导致的一些请求权限如ohos.permission.READ_PASTEBOARD失败。
还有一些问题
有些用例单跑能过,但全量运行就会报错比如DCTS中需要用到组网(待测盒子)的用例,原因应该是全量(run dcts)过程中部分用例是并行测试的,两个用例同时抢占待测盒子(softbus_server)资源导致,另外,DCTS测试项失败基本原因都在foundation/communication/dsoftbus仓库。
关于使用AGENT解决
告诉AGENT环境
1)你需要修复的 XTS-FAILED-MODULE名称(比如ActsToolChainTest)
2)被测镜像源码位置
3)上次测试失败的日志路径
4)设备串口连接方式
5)HDC的连接方式告诉AGENT环境如何做
1)要求他分析定位问题原因
2)修改源码
3)编译产物
4)通过HDC推送至设备
5)重启设备或者相关服务
6)进行回归测试
7)迭代以上问题(一般情况下他会自己这么做)
8)观察以上流程及时调整修复,AGENT可能会跑偏(时间久)
9)测试成功后生成PATCH并推送至对应代码仓的对应分支,给commit信息。
注意:还需要分析生成的patch是否真的有问题或者会不会影响实际的功能,一般来说都没有大问题。
还挺花费时间和TOKEN的,根据为你的复杂程度解决一个module预计5刀至几十刀,时间个把小时至一天不等(取决于你设备性能以及模型的能力),基本所有问题都可以通过AGENT解决。