访问联盟网站

Matter最新TestHarness工具使用介绍(二)

本文由CMGC Matter TIG小组供稿

作者:泰凌微电子于金邈、DEKRA贺伟

在之前我们介绍了Matter TetstHarness工具的安装步骤接下来为大家介绍TH工具的使用方法,以及该如何使用TH对Matter设备进行测试

根据联盟的“TestPlan”,目前Matter的测试项可以分为五类:全自动测试项,半自动测试项,手动测试项,Python in docker测试项以及UI Python测试项。

01

建立Project

首先在浏览器输入作为TH主机的树莓派的IP地址,进入TH的UI界面,点击左上角的“+ Add Project”创建一个新工程,创建工程后在“Project details”中可以选择“Edit”对该工程进行配置。

1. 根据不同的网络连接类型,可以在相应的区域进行编辑。以Matter Over Thread产品为例,在配置界面中找到“thread”网络相关部分,在这里可以修改测试建立的Thread网络的信息,如channel、panid、networkkey等。

2. 在“dut_config”一栏中,根据待测设备的实际信息进行修改,以下为一个示例:

3. 在“test_parameters”一栏中,对UI Python测试项进行配置,对于UI Python测试项,需要提前手动建立Thread网络,并将对应的“dataset”值填入此栏,以下为一个示例:

4. 在右侧的“PICS”一栏中,导入待测设备的PICS文件,并点击“Update”。

5. 完成以上配置后,点击该工程的箭头(Go To Test-Run)进入测试页面,点击“Create New Test Run”创建新测试项。

右侧的Summary列表已罗列出根据导入的PICS文件生成的测试项,TH已将测试项自动分类:FirstManualSuite为手动测试项,FirstChipToolSuite包含全自动和半自动测试项(semi-automated为半自动),Python Testing需要查看“TestPlan”来区分UI自动测试或docker自动测试。

02

全自动测试项

全自动测试项在测试过程中不需要任何其余操作,以TC-ACL-1.1为例,点击“Clear Selection”清除全部自动勾选,并勾选TC-ACL-1.1,输入操作者名称,点击“Start”开始测试。

03

半自动测试项

半自动测试项是在全自动测试项的基础上进行一些必要的手动操作,如重启设备、手动输入命令验证等。

需要注意的是,在半自动测试项的手动步骤中,我们若要发送命令给设备需要使用测试中随机生成的NODE ID,并且需要在docker中进行输入,因此使用chip-tool的命令示例如下:

$ docker exec -it th-sdk ./chip-tool onoff on 0x65499e6daeaf0413 1

在某些旧版本的TH中,需要使用th-chip-tool而不是th-sdk,请注意确认版本。

随机生成的NODE ID会在测试初期在右侧的日志区域打印出来,每次测试都不相同,需要自行查看并正确使用NODE ID。

04

 手动测试项

手动测试项可以先不使用TH UI,根据“Test Plan”执行手动操作,并验证结果。对于Matter Over Thread产品在进行手动测试前,需要先建立Thread网络,运行“certification-tool/scripts/OTBR”目录下的“otbr_start.sh”脚本即可建立Thread网络,在运行前可以适当调整“otbr_start.sh”脚本里的“channel”参数来尽量减少干扰。

05

UI Python测试项

UI Python测试项和全自动测试项一样,测试过程中不需要人工干预,对于Matter Over Thread产品,在测试开始前需要先自行建立Thread网络,并把dataset写入到“test_parameters”一栏,这一步在第一节的第3点已经介绍过,不再赘述。

06

 Python in docker测试项

除UI Python测试外,还有一部分python测试项需要在docker中运行python脚本进行测试,具体步骤如下:

1. 使用“docker images”命令查看名为“connectedhomeip/chip-cert-bins”的docker的tag

$ docker images

2. 进入docker,同时把测试脚本和证书等文件映射进docker,示例命令如下:

$ docker run -v /home/ubuntu/certification-tool/backend/test_collections/matter/sdk_tests/sdk_checkout/python_testing:/root/temp_python_testing -v /home/ubuntu/ci-pics-values.txt:/root/ci-pics-values -v /var/credentials:/credentials -v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket -v $(pwd):/launch_dir –privileged –network host -it connectedhomeip/chip-cert-bins:9f6d627e0262e1d023986291948bb4e845be803e

3. 运行/root/temp_python_testing文件夹中的测试脚本,并添加待测设备的参数以及“Test Plan”要求的参数,开始测试,示例命令如下:

$ rm -f admin_storage.json && python3 temp_python_testing/TC_OPCREDS_3_1.py –discriminator 2562  –passcode 36797971 –commissioning-method ble-thread –paa-trust-store-path  /credentials/development/paa-root-certs/  –storage-path admin_storage.json –thread-dataset-hex 0e08000000000001000035060004001fffe00708fd50afc244fc6392041043dd81dbf3fb77bdbdd881c09f04e9e80c0402a0f7f8000300001201025b3502085b35dead5b35beef030435623335051000112233445566778899aabbccddeeff –ble-interface-id 0

以上内容包含了目前Matter的所有测试项,以及各类测试项的参数配置和测试流程,希望可以帮助大家更好地使用TestHarness工具来进行Matter测试。