如需自动执行认证测试,需要进行额外设置。
以下所有安装和配置步骤均在 Windows 计算机上进行 运行 GRL 自动化测试框架软件。下载并安装最新版 GRL 线程自动化测试框架(发布前) 继续。
安装后,被测设备有两种自动化方法 (DUT):
OpenThread 自动化工具
安装
- 安装以下软件:
<ph type="x-smartling-placeholder">
- </ph>
- Python 2.7
- 适用于 Windows 的 Git(强烈建议支持 Bash)
- 克隆 OpenThread 代码库以获取自动化脚本:
git clone https://github.com/openthread/openthread
- 安装 Python 要求:
cd tools/harness-automation
pip install -r requirements.txt
- 同时安装 Google Chrome 和 ChromeDriver。
配置
- 为自动化工具创建配置文件:
cp autothreadharness/settings_sample.py autothreadharness/settings.py
- 根据 文件。
- 将以下参数添加到自动化测试框架配置文件中,该文件位于
C:\GRL\Thread1.1\Config\Configuration.ini
:BrowserAutoNavigate = False
混合测试平台支持
自动化测试框架工具还支持混合测试平台,其中参考 每个测试用例中使用的设备都是混合设备, 。例如,不要使用运行 对于所有测试用例,您可以在 OpenThread 中混搭使用这四个 Thread 根据需要为每个测试用例参考设备。
如需使用混合测试平台,需要进行额外配置:
- 将以下附加参数添加到自动化测试框架配置中
文件,可在
C:\GRL\Thread1.1\Config\Configuration.ini
中找到:EnableDeviceSelection = True
- 从 Thread 下载拓扑配置文件
群组。
将此文件作为
TopologyConfig.txt
添加到C:\GRL\Thread1.1\Thread_Harness\TestScripts
。此文件详细说明了 每个测试用例中的每个角色要使用的参考设备。
可以修改线程组提供的拓扑配置文件 其他混合床配置,但对于官方认证,需使用原装 配置。
拓扑配置文件中用于参考设备的有效值 分别是:
拓扑配置文件中的值 | 自动化测试框架参考设备 |
---|---|
ARM |
ARM:NXP FRDM-K64F,带 Firefly 6LoWPAN Shield |
NXP |
NXP(Freescale):USB-KW24D512 加密狗 |
OpenThread |
OpenThread:TI CC2538DK |
SiLabs |
Silabs:EM358x USB 棒 |
拓扑配置文件中的每个测试用例条目都必须位于单独的
行,格式为 role:device
对,如下所示:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
自动化测试框架自动 DUT 模式
GRL 自动化测试框架软件提供高级的自动发现功能 (自动 DUT)可加快线程参考堆栈的验证流程 供应商。
OpenThread 提供了一个 线程主机控制器接口 (THCI) 让自动化测试框架像控制您的组件或产品一样, 其中一个参考平台根据 您的特定平台,则 DUT 可以:
充当现有的 OpenThread 参考平台
如果 DUT 的串行端口在 115200 8-N-1 设置下可以正常工作,并且 设备在每次重置(例如, 确认设备与 Windows 计算机的有效连接),然后确定平台 可以使用 OpenThread THCI 工具。借助此工具,设备可以充当 测试期间的 OpenThread 参考平台。
- 关闭 GRL 自动化测试框架(如果处于打开状态)。
- 将设备连接到 Windows 计算机。
- 使用 Python pySerial 查找设备串行端口硬件标识符
模块:
<ph type="x-smartling-placeholder">
- </ph>
- 安装 pySerial 在 Windows 机器上运行。
- 在 Windows 命令行中使用 Python 枚举所有硬件
标识符(VID 和 PID)。在本课中,
其中一台设备与 VID=1366 的标识符相连接,
PID=1015:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- 如果您已知道 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']"
['USB\VID_1366+PID_1015+MI_00']
- 更新黄金设备列表:
<ph type="x-smartling-placeholder">
- </ph>
- 打开
C:\GRL\Thread1.1\Config\Configuration.ini
。 - 更新
GoldenDeviceHardwareIds
数组中的 OpenThread 组 替换为设备的 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=1366:1015']}
- 打开
- 启用自动 DUT 模式。
充当新的参考平台
如果 DUT 的串行端口在正确的串行端口下无法正常运行 设置,或者实体设备在启动后没有正确响应 重置(在重置后的 3-6 秒内输出无法读取的代码),然后 OpenThread 可以自定义 THCI,以在测试中将设备视为新平台 安全带。
例如,要使用北欧半导体 (Nordic Semiconductor) 自定义 THCI, nRF52840 平台:
- 关闭 GRL 自动化测试框架(如果处于打开状态)。
修改
/tools/harness-thci/OpenThread.py
根据目标设备的 UART 特性来调整。修改内容 。对于北欧 nRF52840 平台:- 将
OpenThread.py
文件重命名为nRF52840.py
。 更改前三次出现的“OpenThread”更改为“nRF52840”:
>> Device : nRF52840 THCI
>> Class : nRF52840
class nRF52840(IThci):更改串行端口参数:
def _connect(self):
print 'My port is %s' % self.port
if self.port.startswith('COM'):
self.handle = serial.Serial(self.port, 115200, timeout=0)
time.sleep(1)
self.handle.write('\r\n')
time.sleep(0.1)
self._is_net = False
elif ':' in self.port:
host, port = self.port.split(':')
self.handle = socket.create_connection((host, port))
self.handle.setblocking(0)
self._is_net = True
else:
raise Exception('Unknown port schema')
self.UIStatusMsg = self.getVersionNumber()更改休眠时间以消除不可读代码输出的影响 设备重置后:
def powerDown(self):
"""power down the Thread device"""
print '%s call powerDown' % self.port
self._sendline('reset')
self.isPowerDown = True
time.sleep(8) # New addition
def reboot(self):
"""reset and rejoin to Thread Network without any timeout
Returns:
True: successful to reset and rejoin the Thread Network
False: fail to reset and rejoin the Thread Network
"""
print '%s call reboot' % self.port
try:
self._sendline('reset')
self.isPowerDown = True
time.sleep(8) # Updated from 3 to 8
def reset(self):
"""factory reset"""
print '%s call reset' % self.port
try:
self._sendline('factoryreset')
time.sleep(8) # Updated from 3 to 8
self._read()
def resetAndRejoin(self, timeout):
"""reset and join back Thread Network with a given timeout delay
Args:
timeout: a timeout interval before rejoin Thread Network
Returns:
True: successful to reset and rejoin Thread Network
False: fail to reset and rejoin the Thread Network
"""
print '%s call resetAndRejoin' % self.port
print timeout
try:
self._sendline('reset')
self.isPowerDown = True
time.sleep(timeout)
if timeout < 8: # Sleep a bit longer if the timeout is short
time.sleep(8 - timeout)
- 将
将修改后的
nRF52840.py
文件复制到C:\GRL\Thread1.1\Thread_Harness\THCI
将新的平台信息添加到自动化测试框架中:
- 创建图标(png 或 jpg 格式),以便于区分
并将其复制到
C:\GRL\Thread1.1\Web\images
。 将
C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
更新为新的DEVICE
部分,其中thumbnail
参数是图标文件:<DEVICE name="nRF52840" thumbnail="nRF52840.jpg" description ="nRF52840: Nordic" THCI="nRF52840">
<ITEM label="Serial Line"
type="text"
forParam="SerialPort"
validation="COM"
hint="eg: COM1">COM
</ITEM>
<ITEM label="Speed"
type="text"
forParam="SerialBaudRate"
validation="baud-rate"
hint="eg: 115200">115200
</ITEM>
</DEVICE>
- 创建图标(png 或 jpg 格式),以便于区分
并将其复制到
将设备连接到 Windows 计算机。
使用 Python pySerial 查找设备串行端口硬件标识符 模块:
- 安装 pySerial 在 Windows 机器上运行。
- 在 Windows 命令行中使用 Python 枚举所有硬件
标识符(VID 和 PID)。在本课中,
其中一台设备与 VID=1366 的标识符相连接,
PID=1015:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- 如果您已知道 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']"
['USB\VID_1366+PID_1015+MI_00']
更新黄金设备列表:
- 打开
C:\GRL\Thread1.1\Config\Configuration.ini
。 - 在
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',
'nRF52840': 'VID:PID=1366:1015'}
- 打开
启用自动 DUT 模式
完成上述两个配置选项之一后:
- 打开 GRL 自动化测试框架,设备/端口现在会显示为新参考 设备。
- 选中“支持”下方的 Enable Auto DUT Device Selection 复选框。 硬件列表。
- 选择目标设备/端口下的 Set as DUT 单选按钮以进行设置 作为 DUT 的设备。
