Configuração da automação das certificações

Para automatizar os testes de certificação, outras configurações são necessárias.

Todas as etapas de instalação e configuração abaixo ocorrem na máquina Windows executando o software do arcabouço de testes GRL. Faça o download e instale a versão mais recente Arnês de teste de linha de execução GRL antes continuar.

Depois de instalado, há dois métodos de automação para o dispositivo em teste DUT:

  1. Ferramenta de automação do recurso OpenThread
  2. Teste o modo DUT automático

Ferramenta de automação do OpenThread

Instalar

  1. Instale os seguintes softwares:
    • Python 2.7
    • Git para Windows (o suporte ao Bash é altamente recomendado)
  2. Clone o repositório do OpenThread para acessar os scripts de automação:
    git clone https://github.com/openthread/openthread
    
  3. Requisitos de instalação do Python:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. Instale os apps Google Chrome e ChromeDriver:

Configurar

  1. Crie um arquivo de configuração para a ferramenta de automação:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. Atualize o novo arquivo de configuração de acordo com as instruções na .
  3. Adicione o parâmetro a seguir ao arquivo de configuração do arcabouço de testes, encontrado em C:\GRL\Thread1.1\Config\Configuration.ini:
    BrowserAutoNavigate = False

Suporte para testbed misto

A ferramenta Harness Automation também oferece suporte a testbeds mistos, em que a referência os dispositivos usados em cada caso de teste são um conjunto misto de dispositivos, em vez de todos mesmo dispositivo. Por exemplo, em vez de usar placas 32 TI CC2538 que funcionam OpenThread para todos os casos de teste, é possível misturar e combinar as quatro linhas de execução como indicar os dispositivos para cada caso de teste.

Para usar testbeds mistos, é necessária outra configuração:

  1. Adicione o parâmetro a seguir à configuração do arcabouço de testes arquivo, encontrado em C:\GRL\Thread1.1\Config\Configuration.ini:
    EnableDeviceSelection = True
  2. Fazer o download do arquivo de configuração de topologia da linha de execução Grupo. Adicionar este arquivo como TopologyConfig.txt a C:\GRL\Thread1.1\Thread_Harness\TestScripts. Esse arquivo detalha quais dispositivo de referência a ser usado para cada função em cada caso de teste.

O arquivo de configuração de topologia fornecido pelo grupo de linhas de execução pode ser modificado para outras camas mistas, mas, para certificação oficial, a versão original configuração precisa ser usada.

Valores válidos a serem usados para dispositivos de referência no arquivo de configuração de topologia são:

Valor no arquivo de configuração de topologia Dispositivo de referência de arcabouço de testes
ARM ARM: NXP FRDM-K64F com Firefly 6LoWPAN Shield
NXP NXP(Freescale): USB-KW24D512 Dongles
OpenThread OpenThread: TI CC2538DK
SiLabs Silabs: pendrive EM358x

Cada entrada de caso de teste no arquivo de configuração de topologia precisa estar em um de linha e formatadas em pares role:device da seguinte forma:

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

Modo DUT automático de arcabouço de testes

O software GRL Test Arness oferece um recurso avançado de descoberta automática (DUT automático), que acelera o processo de validação da pilha de referência de thread. fornecedores

O OpenThread fornece um exemplo Interface controladora do host do thread (THCI) que permite que o arcabouço de testes controle seu componente ou produto como se fosse uma das plataformas de referência. De acordo com as características da porta serial sua plataforma específica, o DUT pode:

Atuar como a plataforma de referência existente do OpenThread

Se a porta serial do DUT funcionar nas configurações 115200 8-N-1, e a dispositivo responde corretamente após cada redefinição do dispositivo físico (por exemplo, para confirmar a conexão válida do dispositivo com a máquina Windows) e, em seguida, a plataforma pode usar a ferramenta OpenThread THCI. Essa ferramenta permite que o dispositivo atue como a plataforma de referência do OpenThread durante os testes.

  1. Feche o arcabouço de testes GRL, se estiver aberto.
  2. Conecte o dispositivo à máquina Windows.
  3. Encontrar o identificador de hardware da porta serial do dispositivo usando o pySerial do Python módulo:
    1. Instalar pySerial na máquina Windows.
    2. Usar Python na linha de comando do Windows para enumerar todo o hardware identificadores (VID e PID) para dispositivos conectados à máquina. Neste saída, um dispositivo é conectado com um identificador VID=1366 e PID=1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. Se você já conhece a porta COM, pode usar outro comando. Para por exemplo, se a porta COM for 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. Atualize a lista de dispositivos dourados:
    1. Abra C:\GRL\Thread1.1\Config\Configuration.ini.
    2. Atualizar o grupo OpenThread na matriz GoldenDeviceHardwareIds pelo VID e PID dos dispositivos:
      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. Ativar o modo DUT automático.

Atuar como uma nova plataforma de referência

Se a porta serial do DUT não funcionar sob a porta serial adequada configurações ou o dispositivo não responde corretamente após um dispositivo físico reset (gera código ilegível dentro de 3 a 6 segundos após a redefinição), depois OpenThread O THCI pode ser personalizado para tratar o dispositivo como uma nova plataforma no teste. Cinturão.

Por exemplo, para personalizar o THCI usando o modelo Nordic Semiconductor nRF52840:

  1. Feche o arcabouço de testes GRL, se estiver aberto.
  2. Modificar /tools/harness-thci/OpenThread.py com base nas características UART do dispositivo de destino. As modificações podem diferem entre os dispositivos de destino. No caso da plataforma nórdica nRF52840:

    1. Renomeie o arquivo OpenThread.py como nRF52840.py.
    2. Mudar as três primeiras ocorrências de "OpenThread" para "nRF52840":

      >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
      
    3. Altere os parâmetros da porta serial:

      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. Mude a hora de suspensão para eliminar o impacto da saída de código ilegível após a redefinição do dispositivo:

      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. Copie o arquivo nRF52840.py modificado para C:\GRL\Thread1.1\Thread_Harness\THCI.

  4. Adicione as novas informações de plataforma ao arcabouço de testes:

    1. Crie um ícone (em formato png ou jpg) para facilitar a diferenciação. sua plataforma e a copie para C:\GRL\Thread1.1\Web\images.
    2. Atualize o C:\GRL\Thread1.1\Web\data\deviceInputFields.xml com uma nova Seção DEVICE, em que o parâmetro thumbnail é o arquivo do ícone:

      <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. Conecte o dispositivo à máquina Windows.

  6. Encontrar o identificador de hardware da porta serial do dispositivo usando o pySerial do Python módulo:

    1. Instalar pySerial na máquina Windows.
    2. Usar Python na linha de comando do Windows para enumerar todo o hardware identificadores (VID e PID) para dispositivos conectados à máquina. Neste saída, um dispositivo é conectado com um identificador VID=1366 e PID=1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. Se você já conhece a porta COM, pode usar outro comando. Para por exemplo, se a porta COM for 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. Atualize a lista de dispositivos dourados:

    1. Abra C:\GRL\Thread1.1\Config\Configuration.ini.
    2. Adicione um novo grupo de plataformas na matriz GoldenDeviceHardwareIds. com o VID e o PID do dispositivo:
      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. Ativar o modo DUT automático.

Ativar o modo DUT automático

Depois que uma das duas opções de configuração acima forem concluídas:

  1. Abra o arcabouço de testes GRL. O dispositivo/porta agora aparece como uma nova referência dispositivo.
  2. Marque a caixa de seleção Ativar seleção automática de dispositivos de DUT abaixo de " Lista de hardware.
  3. Selecione o botão de opção Definir como DUT abaixo do dispositivo/porta de destino para definir. o dispositivo como DUT.
Certificação OT DUT automático