1.预先的环境配置

代码下载、编译、驱动按照、镜像烧录等,需根据具体项目自行处理(本文档相关代码版本 OpenHarmony 4.1 release,以rk3568举例)

2.Xts测试套件编译

2.1全量编译

进入//test/xts/acts目录下,执行如:
./build.sh product_name=rk3568 system_size=standard
参数product_name根据自己的产品名修改

2.2编译指定测试套件

进入//test/xts/acts目录下,执行命令如:
./build.sh product_name=rk3568 system_size=standard suite=ActsContextTest
参数product_name根据自己的产品名修改,suite根据要编译的测试套修改

2.3编译hats套件

进入//test/xts/hats目录下,其他操作如2.12.2;这两个测试套编译过程中还可以    根据需要在编译命令中添加--ccahe、--fast-rebuild选项来加速编译过程

3.编译结果

产物路径://out/{产品名}/suites/acts、//out/{产品名}/suites/hats,如:

img

4.测试用例执行

4.1搭建执行环境

在Windows环境下,创建测试框架目录,如果d:\Test,从linux环境下,将上述编译好的acts和hats复制到此目录下,其中tools中需要xdevice-0.0.0.tar.gz、xdevice-ohos-0.0.0.tar.gz这两个文件,当 前项目编译出的suites中没有这两个文件,可以通过日构建下载全量包来找这两个文件(每日构建:https://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist),也可以通过openharmony官网下载(https://www.openharmony.cn/certification/document/xts/),执行测试用例需要的资源文件,也可通过官网下载

4.2 修改config目录中的user_config.xml文件如下:

Ip和port不需要改,按图配置即可(即使设置了ip和端口也无需修改);如果使用网络连接,sn不需要配置,直接为空;如果使用usb连接hdc,sn需要配置,sn可通过“hdc list targets”命令获取

img

4.3 配置环境变量

HDC_SERVER_PORT值为8710;即使设置了端口也无需修改

img

4.4配置python环境

如果以有可忽略此步,如果python不好用(如执行run.bat不能正常运行,缺的库难以安装),可下载python3.8.8版本安装(太高太低都可能出问题,当前用的3.8.8),安装时先卸载旧版本;在 内网如果缺库,可以通过公司镜像下载安装或者换源,或者下载whl文件传到内网安装
pip install wheel -i http://mirror/.***** --trusted-host *****

4.5使用usb hdc连接开发板

使用命令行可直接连接,前面配置好后不需要额外操作

4.6使用网线连接开发板----方法1

有些设备可能usb的hdc没有适配,需要网线连接,连接方法:
1.连接串口,开机后配置ip、路由(可设置端口号,一般不用配,使用默认的8710即可),如:
ipconfig eth0 169.254.13.0 netmask 255.255.0.0
route add default gw 169.254.13.1

2.在cmd命令行执行hdc tconn {ip}:{port} 如:
hdc tconn 169.254.13.0.8710
连接成功后会打印“Connect OK”

4.7 使用网线连接开发板----方法2

上个方法有个缺点,每次重启开发板后都需要通过串口重新配置ip、route 有些麻烦,下面方法可简化操作,不用每次连串口线

  1. 修改启动脚本init.cfg或init.without_two_stages.cfg(不同的项目根据实际情况修改),如添加下图这句:

img


修改后,重新推到开发板中,重启可生效

2.编写一个文件名为ipconfig的shell脚本(根据init.cfg文件中添加的来,注意不要用了windows风格的换行符),内容如:

echo “config ip starting”
ipconfig eth0 169.254.13.0 netmask 255.255.0.0 #ip、route根据情况自定义即可
route add default gw 169.254.13.1
# param set persist.hdc.port 34567 端口设置后重启生效,不设端口时默认为8710; 有的网络条件下,设置五位的端口会连接不上,没必要不用重设端口
# hdcd -t & 当前系统会自动启动hdcd,无需再单独执行此命令;如果再执行的话,可能会因为此服务权限问题导致某些应用安装失败等问题
  1. 将上述ipconfig脚本导入开发板/system/etc/目录下,配置可执行权限,如果因为只读失败,可执行“mount -o rw,remount /”重新挂载

  2. 重启开发板,打开命令行,输入命令连接开发板:
    hdc tconn 169.254.13.0:34567(如果设置了端口为34567,如果没设:hdc tconn 169.254.13.0:8710)

4.8双击run.bat,执行run.bat脚本,不报错即可

4.9执行测试用例

  1. 执行全部测试用例

    在提示框输入:run acts 或 run hats

  1. 执行单个测试套

    在提示框输入如:run -l ActsContextTest

  1. 按类执行测试套中的测试用例

    在提示框输入如:run -l ActsHiAppeventSubTest -ta class:HiAppEventSubTest
    ActsHiAppeventSubTest 测试套中有两个类,各有一部分测试用例

  1. 执行单个测试用例(有些时候整体执行不过,但单个能pass)

    在提示框输入如:
    run -l ActsHiAppeventSubTest -ta class:HiAppEventSubTest#HiAppEventSub67

  1. 执行多个测试用例

    run -l ActsHiAppeventSubTest -ta class:HiAppEventSubTest#HiAppEventSub67;class:HiAppEventSubTest#HiAppEventSub68;class:HiAppEventSubTest#HiAppEventSub69

执行完成后,可看到总结信息

5.查看测试结果

执行完测试用例后,在run.bat同级目录会建一个reports目录,目录中会按用例执行时间生成文件夹,里面存放有测试报告和log

6.常见问题

6.1找不到设备

检查user_config.xml配置是否正确,环境变量HDC_SERVER_PORT是否配置(固定值为8710,不用改),设备连接是否正常,可尝试重新连接

6.2找不到hap包

有些测试套会依赖其他hap包,检查测试套同级目录此hap包是否存在,依赖的hap包会在测试套对应的json文件中有配置(也可根据报错查找),如:

img

6.3找不到资源文件

可通过官网下载,放到run.bat同级目录resource文件夹中

6.4内存压力过大

有些设备内存较小,跑测试用例时内存压力过大,导致杀进程等问题导致有些用例fail; 可通过清理缓存,临时缓解一下内存导致的问题(有的可通过一次少执行一些测试用例 解决)

# sync && echo 1 > /proc/sys/vm/drop_caches //清除页式对象
# sync && echo 2 > /proc/sys/vm/drop_caches //清除slab对象
# sync && echo 3 > /proc/sys/vm/drop_caches //同时清理页式对象和slab对象

6.5 出现“远程主机强迫关闭了一个现有的连接”的可能原因

  1. hdc可能断开,比如休眠了

  2. 测试用例有问题没解决或测出了问题(比如没适配好),如测试用例执行超时等

  3. 测试用例执行了重启、关机之类的操作

可以一次少执行一点测试用例,便于发现问题位置;可以单个测试套都执行通过后再大范围执行

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐