如要自動執行認證測試,您必須完成額外設定。
下列所有安裝和設定步驟都是在 Windows 電腦上執行 執行 GRL Test Harness 軟體。下載並安裝最新版本 之前 GRL 執行緒測試控管工具 繼續。
安裝完成後,測試中的裝置有兩種自動化方法 (DUT):
OpenThread 善用自動化工具
安裝
- 請安裝下列軟體:
- 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
- 請按照 檔案。
- 將下列參數新增至「Test Harness」設定檔,路徑如下:
C:\GRL\Thread1.1\Config\Configuration.ini
:BrowserAutoNavigate = False
混合測試平台支援
Harness Automation 工具也支援混合測試用,其參考資料 每個測試案例中使用的裝置是混合的一組裝置,而非所有 相同。舉例來說,與其使用 32 TI CC2538 主機板,而非執行 所有測試案例適用的 OpenThread 都能混用兩種執行緒 視需要為每個測試案例提供參考裝置
如要使用混合測試機,您必須進行額外設定:
- 在測試 Harness 設定中新增下列額外參數
檔案,位於
C:\GRL\Thread1.1\Config\Configuration.ini
:EnableDeviceSelection = True
- 從 Thread 下載拓撲設定檔
群組。
將此檔案以
TopologyConfig.txt
的形式加入到C:\GRL\Thread1.1\Thread_Harness\TestScripts
。這個檔案會詳細說明 每個測試案例中每個角色使用的參考裝置。
您可以修改 Thread 群組提供的拓撲設定檔 其他混合床型設定,但用於官方認證的 就必須使用 Kubernetes 叢集
要在拓撲設定檔中參照裝置的有效值 是:
拓撲設定檔中的值 | 測試 Harness 參考裝置 |
---|---|
ARM |
ARM:NXP FRDM-K64F 搭配 Firefly 6LoWPAN Shield |
NXP |
NXP(自由縮放):USB-KW24D512 連接器 |
OpenThread |
OpenThread:TI CC2538DK |
SiLabs |
Slabs:EM358x USB 隨身碟 |
拓撲設定檔中的每個測試案例項目都必須位於不同的
一行和採用 role:device
組合的格式:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
測試 Harness 自動 DUT 模式
GRL Test Harness 軟體提供先進的自動探索功能 (自動 DUT),可加快 Thread 參照堆疊的驗證程序 供應商。
OpenThread 提供範例 執行緒主機控制器介面 (THCI) 讓測試控制中心控制你的元件或產品 其中一個參考平台根據 您的特定平台,DUT 可能會:
用作現有的 OpenThread 參考平台
如果 DUT 功能的序列埠在設定下為 115200 8-N-1,且 每次重設實體裝置後,裝置都會正確回應 (例如 確認裝置與 Windows 電腦的有效連線),然後確認平台 可以使用 OpenThread THCI 工具這項工具可讓裝置以 在測試期間的 OpenThread 參考平台。
- 如果 GRL 測試工具處於開啟狀態,請關閉該測試工具。
- 將裝置連接至 Windows 電腦。
- 使用 Python pySerial 找出裝置序列埠硬體 ID
模組:
- 安裝 pySerial Windows 機器
- 在 Windows 指令列中使用 Python 列舉所有硬體
裝置識別碼 (VID 和 PID)。在本
有一個裝置的 ID 為 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
陣列中的 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,在測試中將裝置視為新平台 胸背帶
例如使用北歐半導體自訂 THCI nRF52840 平台:
- 如果 GRL 測試工具處於開啟狀態,請關閉該測試工具。
修改
/tools/harness-thci/OpenThread.py
以目標裝置的 UART 特性為依據。例如修訂 之間的差異以 Nordic 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 找出裝置序列埠硬體 ID 模組:
- 安裝 pySerial Windows 機器
- 在 Windows 指令列中使用 Python 列舉所有硬體
裝置識別碼 (VID 和 PID)。在本
有一個裝置的 ID 為 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 Test Harness,裝置/通訊埠現在會顯示為新參照 裝置。
- 在「支援」部分下方,勾選「Enable Auto DUT Device Selection」核取方塊 硬體清單。
- 選取目標裝置/通訊埠下方的「設為 DUT」圓形按鈕,即可進行設定 把裝置當做 DUT 使用