谷歌致力於推進種族平等的黑人社區。 怎麼看。
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

認證安裝自動化

要自動完成認證測試,則需要額外的設置。

下面所有的安裝和配置步驟運行GRL測試工具軟件在Windows機器上出現。下載並安裝最新的GRL線程測試工具 ,然後再繼續。

一旦安裝完畢,存在用於被測器件(DUT)2的自動化方法:

  1. 線束的OpenThread自動化工具
  2. 測試工具自動DUT模式

線束的OpenThread自動化工具

安裝

  1. 安裝以下軟件:
    • Python 2.7版
    • 混帳的Windows(Bash的支持,強烈推薦)
  2. 克隆庫的OpenThread拿到自動化腳本:
    git clone https://github.com/openthread/openthread
    
  3. 安裝Python要求:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. 同時安裝谷歌Chrome瀏覽器ChromeDriver

配置

  1. 創建自動化工具的配置文件:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. 根據文件中的說明更新新的配置文件。
  3. 以下參數添加到測試工具的配置文件,在找到C:\GRL\Thread1.1\Config\Configuration.ini
    BrowserAutoNavigate = False

混合測試平台支持

線束自動化工具還支持混合測試平台,其中,在每個測試情況下使用的參考設備是一套混合的設備,而不是全部相同的設備。例如,代替使用運行於的OpenThread所有測試用例32 TI CC2538板,可以混合並根據需要為每個測試用例所有四個螺紋參考設備之間匹配。

使用混合測試平台,其他配置是必要的:

  1. 下面的附加參數添加到測試工具的配置文件,在找到C:\GRL\Thread1.1\Config\Configuration.ini
    EnableDeviceSelection = True
  2. 請從線程組的拓撲配置文件 。這個文件添加為TopologyConfig.txtC:\GRL\Thread1.1\Thread_Harness\TestScripts 。該文件詳述該參考設備使用在每個測試用例中的每個角色。

由線程組所提供的拓撲配置文件可以被修改為其它混床的配置,但對於官方認證,必須使用原來的配置。

要使用的拓撲配置文件中參考設備的有效值為:

在拓撲配置文件中的值測試工具的參考設備
ARM ARM:NXP FRDM-K64F與螢火蟲6LoWPAN的盾
NXP 恩智浦半導體(飛思卡爾):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平台

如果被測設備功能下的115200 8-N-1,和設備設置串行端口的每一個物理設備復位後正確響應(例如,以確認設備到Windows機器有效的連接),則該平台可以使用THCI的OpenThread工具。該工具允許設備在測試過程中充當參考的OpenThread平台。

  1. 關閉GRL測試工具,如果它是開放的。
  2. 將設備連接到Windows機器。
  3. 找到該設備串行端口硬件標識符,使用Python pySerial模塊:
    1. 安裝pySerial在Windows機器上。
    2. Windows命令行上使用Python枚舉用於連接到機器設備的所有硬件標識符(VID和PID)。在該輸出中,一個裝置與VID = 1366和PID = 1015的標識符連接:
       python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\ VID_1366+PID_1015 +MI_00 
    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']"
      ['USB\ VID_1366+PID_1015 +MI_00']
  4. 更新金設備列表:
    1. 打開C:\GRL\Thread1.1\Config\Configuration.ini
    2. 更新在組的OpenThread 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=1366:1015' ]}
  5. 啟用自動DUT模式

作為一個新的參考設計平台

如果DUT的串行端口不起作用下正確的串行端口設置,或該設備不物理設備復位後正確響應(3-6秒復位的內輸出不可讀代碼),然後THCI的OpenThread可定制治療該設備作為測試工具的新平台。

例如,使用自定義THCI Nordic半導體nRF52840平台:

  1. 關閉GRL測試工具,如果它是開放的。
  2. 修改/tools/harness-thci/OpenThread.py基於目標設備的UART特性。修飾可以目標設備之間是不同的。在北歐nRF52840平台的情況下:

    1. 重命名OpenThread.py文件nRF52840.py
    2. 更改前三個事件“的OpenThread”到“nRF52840”的:

       >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
       
    3. 改變串口參數:

      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()
      
    4. 更改睡眠時間,以消除不可讀碼輸出的設備復位後的影響:

      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)
      
  3. 複製修改nRF52840.py文件到C:\GRL\Thread1.1\Thread_Harness\THCI

  4. 添加新的信息平台對測試工具:

    1. 創建一個圖標(PNG或JPG格式),使其更容易區分你的平台,並將其複製到C:\GRL\Thread1.1\Web\images
    2. 更新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>
       
  5. 將設備連接到Windows機器。

  6. 找到該設備串行端口硬件標識符,使用Python pySerial模塊:

    1. 安裝pySerial在Windows機器上。
    2. Windows命令行上使用Python枚舉用於連接到機器設備的所有硬件標識符(VID和PID)。在該輸出中,一個裝置與VID = 1366和PID = 1015的標識符連接:
       python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\ VID_1366+PID_1015 +MI_00 
    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']"
      ['USB\ VID_1366+PID_1015 +MI_00']
  7. 更新金設備列表:

    1. 打開C:\GRL\Thread1.1\Config\Configuration.ini
    2. 添加新的平台組中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' }
  8. 啟用自動DUT模式

啟用自動DUT模式

兩個以上的配置選項中的一個之後完成:

  1. 打開GRL測試工具,所述裝置/端口現在顯示為一個新的參考裝置。
  2. 選擇支持的硬件列表下方的啟用自動DUT設備選擇複選框。
  3. 選擇目標設備/端口下設為DUT單選按鈕,該裝置設置為DUT。
OT認證自動DUT