边界路由器自动化测试框架设置

与 OpenThread 边界路由器 (OTBR) 被测设备 (DUT) 搭配使用的 GRL 线程测试框架和 OpenThread 框架自动化工具的设置与认证自动化设置指南中所述的设置相同。请结合使用该指南和此处详述的变更。

对于 OTBR 等 NCP 设计,OpenThread 提供了一个 OpenThread_WpanCtl.py 示例线程主机控制接口 (THCI),以允许测试框架控制 NCP。NCP 设备有两种连接模式:

  • 使用串行端口连接(建议使用测试框架的自动发现功能)
  • 使用 SSH 连接

除非另有说明,否则以下所有安装和配置步骤都是在运行 GRL 自动化测试框架软件的 Windows 计算机上进行的,先安装后才能继续。

复制 THCI 支持文件

确保 Windows 计算机上安装的是最新版本的 THCI。克隆 OpenThread 代码库;如果已有,则切换到 main 分支:

git clone https://github.com/openthread/openthread
cd openthread
git checkout main

将以下文件从克隆的 OpenThread 代码库中的 /tools/harness-thci 复制到 Windows 机器上的指定目录:

源文件 复制到目录
deviceInputFields.xml C:\GRL\Thread1.1\Web\data\
OpenThread_WpanCtl.py C:\GRL\Thread1.1\Thread_Harness\THCI\
OpenThread_WpanCtl.png C:\GRL\Thread1.1\Web\images\

设置连接类型

对于 NCP 的自动化测试框架控制,请设置串行端口连接或 SSH 连接。

在 Raspberry Pi 3B (RPi3B) 上,启用串行端口和登录 shell:

  1. 进入配置菜单:
    sudo raspi-config
  2. 在配置菜单中,选择 5 个接口选项
  3. 在“Interfacing Options”(接口选项)菜单中,选择 P6 Serial Enable/Disable(P6 串行启用/停用)。
  4. 重启 RPi3B。

在运行测试框架的 Windows 计算机上:

OTBR FT232 连接
  1. 下载并安装 FT232 驱动程序
  2. 将 FT232 USB 转 UART 适配器连接到 Windows 计算机上的 USB 插槽。
  3. 将 FT232 上的电压跳线设置为 3.3V。
  4. 使用以下引脚和杜邦线将 FT232 连接到 RPi3B:
    RPi3B 引脚 FT232 引脚 Dupont Line
    Pin6 GND 白色
    针 8 RXD 黄色
    Pin10 TXD 红色
  5. 连接后,重启 Windows 计算机。
  6. 使用 Python pySerial 模块查找设备串行端口硬件标识符:
    1. 在 Windows 机器上安装 pySerial
    2. 在 Windows 命令行中使用 Python 枚举连接到机器的设备的所有硬件标识符 (VID 和 PID)。此输出中连接了一台 NCP 设备,其标识符为 VID_0403+PID_6001
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: FTDIBUS\VID_0403+PID_6001+AL01WOSZA\0000
    3. 如果您已知道 COM 端口,可以使用其他命令。例如,如果 COM 端口为 COM10
      python -c "import serial.tools.list_ports;print [ports[2] for ports in serial.tools.list_ports.comports() if ports[0] == 'COM10']"
      ['FTDIBUS\VID_0403+PID_6001+AL01WP6MA\0000']
  7. 更新金标准设备列表:
    1. 打开C:\GRL\Thread1.1\Config\Configuration.ini
    2. OpenThread_WpanCtl 分组添加到 GoldenDeviceHardwareIds 数组,并添加设备的 VID 和 PID:
      GoldenDeviceHardwareIds = {
      'NXP': ['VID:PID=1FC9:0300','VID:PID=15A2:0300','VID:PID=1366:1015'],
      'SiLabs': 'VID:PID=10C4:8A5E',
      'ARM': 'VID:PID=0D28:0204',
      'OpenThread':['VID:PID=10C4:EA60', 'VID:PID=1915:CAFE'],
      'OpenThread_WpanCtl':['VID_0403+PID_6001’]}

完成所有配置后:

  1. 启动 GRL 测试框架。
  2. 配置测试平台页面上,设备/端口现在显示为 OT NCP 设备。

    如果在启动测试框架后,被测设备 (DUT) 未列在测试平台部分,请将 OpenThread WpanCtl:wpantund+NCP 设备从受支持的硬件部分拖动到测试平台部分,以手动添加该设备。拖动后:

    1. 确保填充正确的串行线(COM 端口)和速度(波特率)值。
    2. 点击 Speed 字段下方的箭头按钮,在测试框架和 OT NCP 设备之间建立串行连接。
  3. 选中“支持的硬件”列表下方的 Enable Auto DUT Device Selection 复选框。

  4. 选择目标设备/端口下的 Set as DUT(设为 DUT)单选按钮,将 OT NCP 设备设为 DUT。

OTBR 认证 SSH

SSH 连接

在 RPi3B 上,启用 SSH:

  1. 在启动时启用 SSH 服务:
    sudo systemctl enable ssh
  2. 启动 SSH 服务:
    sudo systemctl start ssh

如需在无头 RPi3B 上启用 SSH,请参阅 Raspberry Pi SSH 文档的第 3 步。

在运行测试框架的 Windows 计算机上:

  1. 为 GRL 的 Python 环境安装 Paramiko:
    cd C:\GRL\Python2.7
    python -m pip install --upgrade pip
    python -m pip install paramiko
  2. 启动 GRL 测试框架。
  3. Configure Test Bed(配置测试平台)页面上,将 OpenThread WpanCtl SSH: wpantund+NCP 设备从 Supported Hardware(支持的硬件)部分拖动到 Test Bed(测试平台)部分。
  4. 为设备填充 IP 地址(192.168.1.100)和 端口(22)。
  5. 点击 PORT 字段下方的箭头按钮,在测试框架和 OT NCP 设备之间建立 SSH 连接。
OTBR 认证 SSH

自动化设置

如需了解如何设置自动化测试框架工具,请参阅认证自动化设置指南中的安装配置步骤。

运行测试用例

如需了解如何在 OTBR DUT 上运行认证测试用例,请参阅运行认证测试用例

问题排查

设备重新启动

如果您需要重新启动 RPi3B,请关闭 Test Harness 软件,并在重新启动完成后至少等待 20 秒,然后重新启动 Test Harness。

自动化测试框架未能发现边界路由器

使用串行端口连接时,自动化测试框架可能无法发现边界路由器。如果遇到这种情况,请按以下指示操作:

  1. 使用 PuTTY 等工具检查 Shell 登录是否适用于串行端口。
    1. 使用 FT232 设备的 COM 端口,速度(波特率)为 115200。
    2. 如果登录失败,请重新启动所有设备,然后重试。
  2. 在 RPi3B 上,检查 wpantund 的状态:
    sudo service wpantund status
    如果状态为“异常”:
    1. 确保已安装 nRF52840 NCP 开发板:
      ls /dev/tty*
      /dev/ttyACM0
    2. 验证此端口是否与 wpantund 配置匹配:
      // default value in '/etc/wpantund.conf'
      Config:NCP:SocketPath "/dev/ttyACM0"
    3. 重启 wpantund
      sudo service wpantund restart