Automatisierung der Zertifizierung einrichten

Zum Automatisieren von Zertifizierungstests ist eine zusätzliche Einrichtung erforderlich.

Alle folgenden Installations- und Konfigurationsschritte werden auf einem Windows-Computer ausgeführt die GRL Test Harness-Software ausführen. Aktuelle Version herunterladen und installieren GRL-Thread-Test-Harnisch vor dem wird fortgesetzt.

Nach der Installation gibt es zwei Automatisierungsmethoden für das zu testende Gerät. (DUT):

  1. OpenThread-Harness-Automatisierungstool
  2. Harness Auto-DUT-Modus testen

OpenThread-Harness-Automatisierungstool

Installieren

  1. Installieren Sie die folgende Software: <ph type="x-smartling-placeholder">
      </ph>
    • Python 2.7
    • Git für Windows (Bash wird dringend empfohlen)
  2. Klonen Sie das OpenThread-Repository, um die Automatisierungsskripts abzurufen:
    git clone https://github.com/openthread/openthread
    
  3. Installieren Sie Python-Anforderungen:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. Installieren Sie sowohl Google Chrome als auch ChromeDriver:

Konfigurieren

  1. Erstellen Sie eine Konfigurationsdatei für das Automatisierungstool:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. Aktualisieren Sie die neue Konfigurationsdatei gemäß den Anweisungen im -Datei.
  3. Fügen Sie den folgenden Parameter zur Test Harness-Konfigurationsdatei hinzu, die sich unter C:\GRL\Thread1.1\Config\Configuration.ini:
    BrowserAutoNavigate = False

Gemischte Testbetten-Unterstützung

Das Harness Automation Tool unterstützt auch gemischte Prüfbereiche, in denen die Referenz Geräte, die in den einzelnen Testläufen verwendet werden, sind eine gemischte Gruppe von Geräten und nicht alle auf demselben Gerät. Anstatt beispielsweise 32 TI CC2538-Boards mit OpenThread für alle Testfälle, Sie können alle vier Thread-Versionen Referenzgeräte für jeden Testlauf nach Bedarf.

Zur Verwendung gemischter Testbetten ist eine zusätzliche Konfiguration erforderlich:

  1. Fügen Sie der Konfiguration des Test-Harnischs den folgenden zusätzlichen Parameter hinzu Datei, gefunden unter C:\GRL\Thread1.1\Config\Configuration.ini:
    EnableDeviceSelection = True
  2. Topologie-Konfigurationsdatei aus Thread herunterladen Gruppieren. Diese Datei als TopologyConfig.txt hinzufügen zu C:\GRL\Thread1.1\Thread_Harness\TestScripts. In dieser Datei wird angegeben, Referenzgerät, das für jede Rolle in jedem Testfall verwendet wird.

Die von der Thread-Gruppe bereitgestellte Topologiekonfigurationsdatei kann geändert werden für anderen gemischten Betten. Für die offizielle Zertifizierung Konfiguration verwendet werden.

Gültige Werte für Referenzgeräte in der Topologiekonfigurationsdatei sind:

Wert in der Topologiekonfigurationsdatei Referenzgerät für Test-Harnisch
ARM ARM: NXP FRDM-K64F mit Firefly 6LoWPAN Shield
NXP NXP(Freescale): USB-KW24D512-Dongles
OpenThread OpenThread: TI CC2538DK
SiLabs Silabs: EM358x USB-Stick

Jeder Testlaufeintrag in der Topologiekonfigurationsdatei muss sich auf einem separaten Zeile und in role:device-Paaren formatiert:

5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM

Automatischer DUT-Modus für Harness testen

Die GRL Test Harness-Software bietet eine erweiterte automatische Erkennungsfunktion. (Auto DUT), die den Validierungsprozess für den Thread-Referenzstack beschleunigt Zulieferunternehmen.

OpenThread stellt ein Beispiel Thread-Host-Controller-Schnittstelle (THCI) mit dem der Test-Harnisch Ihre Komponente oder Ihr Produkt so steuern kann, einer der Referenzplattformen. Entsprechend den Eigenschaften des seriellen Ports Plattform angeben, könnte Ihr DUT entweder:

Als bestehende OpenThread-Referenzplattform fungieren

Wenn der serielle Port des DUT mit den Einstellungen von 115200 8-N-1 funktioniert und der das Gerät nach jedem Zurücksetzen eines physischen Geräts korrekt reagiert (z. B. Prüfen Sie die gültige Verbindung des Geräts zum Windows-Computer), dann kann die Plattform das OpenThread-THCI-Tool verwenden kann. Mit diesem Tool kann das Gerät als Referenzplattform OpenThread während des Tests.

  1. Schließen Sie das GRL-Test-Harnisch, falls es geöffnet ist.
  2. Verbinden Sie das Gerät mit dem Windows-Computer.
  3. Ermitteln Sie mithilfe des Python-Typs pySerial die Hardwarekennzeichnung des seriellen Ports des Geräts Modul: <ph type="x-smartling-placeholder">
      </ph>
    1. pySerial installieren auf dem Windows-Rechner.
    2. Mit Python in der Windows-Befehlszeile alle Hardwarekomponenten auflisten IDs (VID und PID) für mit dem Gerät verbundene Geräte. In dieser ist ein Gerät mit der ID VID=1366 verbunden. PID=1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. Wenn Sie den COM-Port bereits kennen, können Sie einen anderen Befehl verwenden. Für Wenn der COM-Port beispielsweise COM10 ist:
      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. Liste der goldenen Geräte aktualisieren: <ph type="x-smartling-placeholder">
      </ph>
    1. Öffnen Sie C:\GRL\Thread1.1\Config\Configuration.ini.
    2. OpenThread-Gruppe im Array GoldenDeviceHardwareIds aktualisieren durch die VID und PID des/der Geräte:
      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. Aktivieren Sie den automatischen DUT-Modus.

Als neue Referenzplattform fungieren

Serieller Port des DUTs unter dem richtigen seriellen Port nicht funktioniert oder das Gerät reagiert nach einem physischen Gerät nicht richtig zurückgesetzt (gibt 3–6 Sekunden nach dem Zurücksetzen unlesbaren Code aus), dann OpenThread THCI kann angepasst werden, um das Gerät im Test als neue Plattform zu behandeln. Geschützen.

Wenn Sie beispielsweise THCI mit Nordic Semiconductor anpassen möchten, nRF52840-Plattform:

  1. Schließen Sie das GRL-Test-Harnisch, falls es geöffnet ist.
  2. /tools/harness-thci/OpenThread.py ändern basierend auf den UART-Eigenschaften des Zielgeräts. Änderungen können unterscheiden sich je nach Zielgerät. Im Fall der Nordic-Plattform nRF52840:

    1. Benennen Sie die Datei OpenThread.py in nRF52840.py um.
    2. Die ersten drei Vorkommen von "OpenThread" ändern an „nRF52840“:

      >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
      
    3. Ändern Sie die Parameter des seriellen Ports:

      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. Ändern Sie die Ruhezeit, um die Auswirkungen von nicht lesbarem Code zu vermeiden. Nach dem Zurücksetzen des Geräts:

      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. Kopieren Sie die geänderte Datei nRF52840.py nach C:\GRL\Thread1.1\Thread_Harness\THCI.

  4. Fügen Sie dem Test Harness die neuen Plattforminformationen hinzu:

    1. Erstellen Sie ein Symbol im PNG- oder JPG-Format, um die Unterscheidung zu erleichtern. Ihre Plattform und kopieren Sie sie nach C:\GRL\Thread1.1\Web\images.
    2. C:\GRL\Thread1.1\Web\data\deviceInputFields.xml mit einem neuen DEVICE, wobei der thumbnail-Parameter die Symboldatei ist:

      <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. Verbinden Sie das Gerät mit dem Windows-Computer.

  6. Ermitteln Sie mithilfe des Python-Typs pySerial die Hardwarekennzeichnung des seriellen Ports des Geräts Modul:

    1. pySerial installieren auf dem Windows-Rechner.
    2. Mit Python in der Windows-Befehlszeile alle Hardwarekomponenten auflisten IDs (VID und PID) für mit dem Gerät verbundene Geräte. In dieser ist ein Gerät mit der ID VID=1366 und PID=1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. Wenn Sie den COM-Port bereits kennen, können Sie einen anderen Befehl verwenden. Für Wenn der COM-Port beispielsweise COM10 ist:
      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. Liste der goldenen Geräte aktualisieren:

    1. Öffnen Sie C:\GRL\Thread1.1\Config\Configuration.ini.
    2. Neue Plattformgruppe im Array GoldenDeviceHardwareIds hinzufügen durch die VID und PID des Geräts:
      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. Aktivieren Sie den automatischen DUT-Modus.

Automatischen DUT-Modus aktivieren

Nachdem eine der beiden obigen Konfigurationsoptionen eingerichtet wurde, gehen Sie so vor:

  1. Öffnen Sie das GRL-Test-Harness. Das Gerät/der Port wird jetzt als neue Referenz angezeigt. .
  2. Klicken Sie unter der Liste „Unterstützte“ das Kästchen Automatische DUT-Geräteauswahl aktivieren an. Hardwareliste.
  3. Wählen Sie unter dem Zielgerät bzw. -port das Optionsfeld Als DUT festlegen aus. das Gerät als DUT.
OT-Zertifizierung (Auto-DUT)