搞OpenHarmony开发的朋友们应该都遇到过XTS测试这个坎。说实话,我第一次搭环境的时候差点崩溃,各种报错接踵而至,差点就想放弃。后来经过多次实践,终于总结出一套稳定可靠的搭建方法,今天就把这些实战经验分享给大家。
XTS测试全称是OpenHarmony Test Suite,是OpenHarmony官方提供的兼容性测试套件。它主要用来验证设备是否符合OpenHarmony的兼容性标准,确保应用在不同设备上都能正常运行。对于开发者来说,通过XTS测试是产品上市前的必经之路。
搭建环境前需要准备以下硬件和软件:
为什么强调Python版本?因为这是最容易踩坑的地方。最新版的Python 3.9+与测试框架存在兼容性问题,会导致各种莫名其妙的错误。我刚开始就栽在这个坑里,浪费了大半天时间排查问题。
首先去Python官网下载3.8.0版本。这里有个小技巧:建议下载可执行安装程序(executable installer),而不是嵌入式版本。安装时一定要勾选"Add Python 3.8 to PATH"选项,这样后续操作会方便很多。
安装完成后,打开cmd验证是否安装成功:
bash复制python --version
应该显示Python 3.8.0。如果显示其他版本,说明系统中有多个Python环境,需要调整环境变量优先级。
由于网络原因,直接安装依赖包可能会非常慢甚至失败。建议更换为国内镜像源,我常用的是清华源:
bash复制python -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
按照顺序执行以下命令安装必要组件:
bash复制python -m pip install setuptools==46.1.3
python -m pip install pyserial
python -m pip install rsa
python -m pip install paramiko
这里有个关键点:setuptools的安装方式很特殊。如果直接用普通方式安装,scripts目录下会缺少easy_install.exe,导致后续报错。我推荐的安装命令可以避免这个问题。
如果安装paramiko时遇到"Building wheel for bcrypt"错误,可以尝试:
bash复制python -m pip install --upgrade pip
python -m pip install --no-use-pep517 bcrypt
从OpenHarmony官网下载最新版XTS测试框架。解压后进入tools目录,应该能看到xdevice相关的文件。如果缺少xdevice-0.0.0.tar.gz和xdevice-extension-0.0.0.tar.gz这两个文件,测试将无法进行。
我遇到过这种情况:框架解压后缺少关键文件。这时需要手动编译生成,或者从可靠来源获取。建议在开发者社区寻求帮助,很多热心开发者会分享完整的包。
在包含setup.py的目录下执行:
bash复制python setup.py install
需要安装三个组件:xdevice、xdevice-extension和xdevice-ohos。安装完成后,再次运行测试时就不会出现"Skipping xdevice as it is not installed"的警告了。
环境搭建完成后,可以通过以下命令验证:
bash复制pip list
应该能看到所有必要的包都已正确安装,且没有版本冲突。同时,python命令应该能正常响应,不会报错。
这是最常见的问题之一。bat文件运行结束后cmd窗口会自动关闭,导致看不到错误信息。解决方法很简单:新建一个bat文件,内容为:
bat复制start run.bat
pause
这样运行后窗口会保持打开,可以查看具体错误信息。
大多数情况下,闪退是由于xdevice配置不正确引起的。检查tools目录下是否有完整的xdevice文件。如果问题依旧,可以尝试重新部署整个测试框架。
当出现"目标计算机积极拒绝,无法连接"错误时,首先确认HDC是否能正常识别设备:
bash复制hdc_std.exe shell
如果能进入设备shell,说明连接正常。然后在cmd中执行run.bat,不要直接双击运行。
"required device does not exist"错误通常是由于user_config.xml配置不当造成的。需要确保配置文件中设备的SN码与实际一致。可以通过以下命令获取设备SN码:
bash复制hdc_std.exe list targets
有时候测试能正常启动,但某些功能无法使用,这很可能是权限问题。可以尝试在设备上手动安装测试包并赋予权限:
bash复制hdc_std.exe file send test.hap /data/
hdc_std.exe shell
bm install -p /data/test.hap -r
环境配置正确后,运行run.bat开始测试。测试过程可能会持续较长时间,期间不要断开设备连接。测试完成后会生成详细的报告,包括通过率和失败用例。
我第一次跑测试时,看到一大堆失败用例差点崩溃。后来发现很多失败是由于环境配置不完善造成的,不一定是代码问题。建议先确保环境100%正确,再分析测试结果。
测试报告通常包括以下部分:
重点关注持续性失败(每次运行都失败)的用例,这些通常反映真实问题。偶发性失败可能是环境波动造成的,可以多次测试确认。
对于失败用例,可以按照以下步骤排查:
我习惯把失败用例分成三类:环境问题、规范理解偏差和真实缺陷。这样分类处理效率会高很多。
频繁执行测试时,可以编写自动化脚本处理重复工作。比如这个简单的脚本可以自动安装依赖并启动测试:
bash复制@echo off
python -m pip install -r requirements.txt
start run.bat
pause
在user_config.xml中可以根据需要调整测试参数:
对于大型测试套件,可以尝试以下优化:
我在实际项目中发现,优化后的环境测试时间能缩短30%以上。特别是内存分配,对测试稳定性影响很大。
对于长期项目,建议将XTS测试集成到CI/CD流程中。可以使用Jenkins等工具实现自动化测试,每次代码提交后自动运行测试并生成报告。
基本流程包括:
这套方案实施后,我们的测试效率提升了近70%,而且能及早发现兼容性问题。