Configuration de l'automatisation de la certification

Pour automatiser les tests de certification, une configuration supplémentaire est requise.

Toutes les étapes d'installation et de configuration ci-dessous s'effectuent sur la machine Windows exécutant le logiciel GRL Test Harness. Téléchargez et installez la dernière version GrL Thread Test Harness (harnais de test des threads GRL) continuer.

Une fois l'installation effectuée, deux méthodes d'automatisation sont disponibles pour l'appareil testé. (DUT):

  1. Outil d'automatisation OpenThread
  2. Tester le mode Appareil test automatique de l'appareil

Outil d'automatisation OpenThread Harness

Installer

  1. Installez les logiciels suivants: <ph type="x-smartling-placeholder">
      </ph>
    • Python 2.7
    • Git pour Windows (la prise en charge de Bash est vivement recommandée)
  2. Clonez le dépôt OpenThread pour obtenir les scripts d'automatisation:
    git clone https://github.com/openthread/openthread
    
  3. Installez la configuration requise pour Python:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. Installez Google Chrome et ChromeDriver

Configurer

  1. Créez un fichier de configuration pour l'outil d'automatisation:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. Mettez à jour ce nouveau fichier de configuration en suivant les instructions .
  3. Ajoutez le paramètre suivant au fichier de configuration Test Harness, disponible à l'adresse C:\GRL\Thread1.1\Config\Configuration.ini:
    BrowserAutoNavigate = False

Compatibilité avec Testbed mixte

L'outil d'automatisation Harness est également compatible avec les tests mixtes, où la référence utilisés dans chaque scénario de test correspondent à un ensemble mixte, et non à l'ensemble des même appareil. Par exemple, au lieu d'utiliser des cartes 32 TI CC2538 OpenThread pour tous les scénarios de test, vous pouvez combiner les quatre Threads des appareils de référence pour chaque scénario de test selon vos besoins.

Pour utiliser des tables de test mixtes, une configuration supplémentaire est nécessaire:

  1. Ajoutez le paramètre supplémentaire suivant à la configuration de Test Harness. fichier, disponible à l'emplacement C:\GRL\Thread1.1\Config\Configuration.ini:
    EnableDeviceSelection = True
  2. Télécharger le fichier de configuration de topologie à partir du thread Groupe. Ajoutez ce fichier en tant que TopologyConfig.txt à C:\GRL\Thread1.1\Thread_Harness\TestScripts Ce fichier détaille les appareil de référence à utiliser pour chaque rôle dans chaque scénario de test.

Le fichier de configuration de topologie fourni par le groupe de threads peut être modifié pour Autres configurations possibles avec des lits mixtes, mais pour la certification officielle, doit être utilisée.

Valeurs valides à utiliser pour les appareils de référence dans le fichier de configuration de la topologie sont:

Valeur dans le fichier de configuration de topologie Appareil de référence Test Harness
ARM ARM: NXP FRDM-K64F avec bouclier Firefly 6LoWPAN
NXP NXP(Freescale): dongles USB-KW24D512
OpenThread OpenThread: TI CC2538DK
SiLabs Silabs: clé USB EM358x

Chaque entrée de scénario de test dans le fichier de configuration de la topologie doit se trouver sur un emplacement distinct et mise en forme par paires role:device comme suit:

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

Tester le mode Appareil test automatique

Le logiciel GRL Test Harness offre une fonctionnalité avancée de détection automatique (Auto DUT) qui accélère le processus de validation de la pile de référence Thread fournisseurs.

OpenThread fournit un exemple Interface de contrôleur hôte Thread (THCI) qui permet au groupe de test de contrôler votre composant ou produit l'une des plates-formes de référence. Selon les caractéristiques du port série sur votre plate-forme, l'appareil testé peut:

Agir en tant que plateforme de référence OpenThread existante

Si le port série de l'appareil testé fonctionne avec les paramètres 115200 8-N-1, et si le l'appareil répond correctement après chaque réinitialisation physique de l'appareil (par exemple, (confirmez la connexion valide de l'appareil à l'ordinateur Windows), puis la plate-forme pouvez utiliser l'outil THCI OpenThread. Cet outil permet à l'appareil d'agir en tant que Plate-forme de référence OpenThread pendant les tests.

  1. Fermez le faisceau de test GRL, s'il est ouvert.
  2. Connectez l'appareil à l'ordinateur Windows.
  3. Recherchez l'identifiant matériel du port série de l'appareil à l'aide de la commande Python pySerial module: <ph type="x-smartling-placeholder">
      </ph>
    1. Installer pySerial sur la machine Windows.
    2. Utiliser Python sur la ligne de commande Windows pour énumérer tout le matériel (VID et PID) des appareils connectés à la machine. Dans ce sortie, un périphérique est connecté avec un identifiant de VID=1366 et PID=1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. Si vous connaissez déjà le port COM, vous pouvez utiliser une autre commande. Pour exemple, si le port COM est 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. Mettez à jour la liste des appareils Golden: <ph type="x-smartling-placeholder">
      </ph>
    1. Ouvrez C:\GRL\Thread1.1\Config\Configuration.ini.
    2. Mettre à jour le groupe OpenThread dans le tableau GoldenDeviceHardwareIds avec le VID et le PID du ou des appareils :
      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. Activez le mode Appareil test automatique.

Agir en tant que nouvelle plate-forme de référence

Si le port série de l'appareil testé ne fonctionne pas avec le bon port série de paramètres ou si l'appareil ne répond pas correctement après un réinitialisé (code illisible dans les 3 à 6 secondes suivant la réinitialisation), puis OpenThread THCI peut être personnalisé pour traiter l'appareil comme une nouvelle plate-forme lors du test Exploitez.

Par exemple, pour personnaliser les THCI à l'aide du modèle Nordic Semiconductor nRF52840:

  1. Fermez le faisceau de test GRL, s'il est ouvert.
  2. Modifier /tools/harness-thci/OpenThread.py en fonction des caractéristiques UART de l'appareil cible. Ces modifications peuvent diffèrent selon les appareils cibles. Dans le cas de la plate-forme nordique nRF52840:

    1. Renommez le fichier OpenThread.py en nRF52840.py.
    2. Modifier les trois premières occurrences d'« OpenThread » par "nRF52840" :

      >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
      
    3. Modifiez les paramètres du port série:

      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. Modifier le délai de mise en veille pour éliminer l'impact d'une sortie de code illisible Après la réinitialisation de l'appareil:

      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. Copiez le fichier nRF52840.py modifié dans C:\GRL\Thread1.1\Thread_Harness\THCI.

  4. Ajoutez les informations de la nouvelle plate-forme à Test Harness:

    1. Créer une icône (au format png ou jpg) pour la différencier plus facilement votre plate-forme et copiez-la dans C:\GRL\Thread1.1\Web\images.
    2. Remplacer C:\GRL\Thread1.1\Web\data\deviceInputFields.xml par un nouveau Section DEVICE, où le paramètre thumbnail correspond au fichier d'icône:

      <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. Connectez l'appareil à l'ordinateur Windows.

  6. Recherchez l'identifiant matériel du port série de l'appareil à l'aide de la commande Python pySerial module:

    1. Installer pySerial sur la machine Windows.
    2. Utiliser Python sur la ligne de commande Windows pour énumérer tout le matériel (VID et PID) des appareils connectés à la machine. Dans ce sortie, un périphérique est connecté avec un identifiant de VID=1366 et PID=1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. Si vous connaissez déjà le port COM, vous pouvez utiliser une autre commande. Pour exemple, si le port COM est 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. Mettez à jour la liste des appareils Golden:

    1. Ouvrez C:\GRL\Thread1.1\Config\Configuration.ini.
    2. Ajouter un groupe de plates-formes dans le tableau GoldenDeviceHardwareIds par le VID et le PID de l'appareil:
      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. Activez le mode Appareil test automatique.

Activer le mode Appareil testé automatiquement

Une fois que vous avez effectué l'une des deux options de configuration ci-dessus:

  1. Ouvrez GRL Test Harness. L'appareil/le port apparaît désormais en tant que nouvelle référence. appareil.
  2. Cochez la case Enable Auto DUT Device Selection (Activer la sélection automatique des appareils DUT) sous le champ Liste du matériel.
  3. Cochez la case d'option Définir comme appareil testé sous l'appareil ou le port cibles à définir. l'appareil en tant qu'appareil testé.
Certification OT : évaluation automatique après évaluation