Konfiguracja automatyzacji certyfikacji

Aby zautomatyzować testy certyfikacyjne, musisz przeprowadzić dodatkową konfigurację.

Wszystkie poniższe kroki instalacji i konfiguracji są wykonywane na komputerze z systemem Windows uruchamianie oprogramowania GRL Test Harness. Pobierz i zainstaluj najnowszą wersję Harness Thread Test Harness – wcześniej i kontynuuję.

Po zainstalowaniu dostępne będą 2 metody automatyzacji dla testowanego urządzenia (DUT):

  1. Narzędzie OpenThread Harness Automation Tool
  2. Testuj tryb automatycznego DUT (urządzenia)

Narzędzie do automatyzacji OpenThread Harness

Zainstaluj

  1. Zainstaluj następujące oprogramowanie:
    • Python 2.7
    • Git dla systemu Windows (zdecydowanie zalecana obsługa bash)
  2. Skopiuj repozytorium OpenThread, aby pobrać skrypty automatyzacji:
    git clone https://github.com/openthread/openthread
    
  3. Zainstaluj wymagania Pythona:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. Zainstaluj Google Chrome i ChromeDriver

Skonfiguruj

  1. Utwórz plik konfiguracji narzędzia do automatyzacji:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. Zaktualizuj nowy plik konfiguracji zgodnie z instrukcjami w .
  3. Dodaj poniższy parametr do pliku konfiguracji jarzma testowego, który znajduje się na stronie C:\GRL\Thread1.1\Config\Configuration.ini:
    BrowserAutoNavigate = False

Obsługa mieszanych łóżek testowych

Harness Automation Tool obsługuje również testy mieszane, w których urządzenia używane w poszczególnych przypadkach testowych to zestaw urządzeń, a nie wszystkie na tym samym urządzeniu. Na przykład zamiast używać 32 płytek TI CC2538 uruchomionych OpenThread dla wszystkich przypadków testowych, można łączyć i mieszać ze wszystkich 4 zasad. odniesienia do każdego przypadku testowego.

Korzystanie z mieszanych platform testowych wymaga dodatkowej konfiguracji:

  1. Dodaj następujący dodatkowy parametr do konfiguracji jarzma testów plik znaleziony pod adresem C:\GRL\Thread1.1\Config\Configuration.ini:
    EnableDeviceSelection = True
  2. Pobierz plik konfiguracji topologii z Thread Grupa. Dodaj ten plik jako TopologyConfig.txt do C:\GRL\Thread1.1\Thread_Harness\TestScripts Ten plik zawiera szczegółowe informacje o urządzenia referencyjnego, które ma być używane w przypadku poszczególnych ról w każdym przypadku testowego.

Plik konfiguracji topologii udostępniony przez grupę wątków można zmodyfikować w przypadku inne konfiguracje łóżek mieszanych, ale do oficjalnego certyfikatu należy konfiguracji.

Prawidłowe wartości do użycia dla urządzeń referencyjnych w pliku konfiguracji topologii to:

Wartość w pliku konfiguracji topologii Urządzenie referencyjne jarzma testowego
ARM ARM: NXP FRDM-K64F z tarczą Firefly 6LoWPAN
NXP NXP(Freescale): USB-KW24D512
OpenThread OpenThread: TI CC2538DK
SiLabs Silabs: pamięć USB EM358x

Każdy wpis przypadku testowego w pliku konfiguracji topologii musi znajdować się w osobnym i sformatowane w role:device parami w następujący sposób:

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

Tryb automatycznego urządzenia DUT (testy jarzma)

Oprogramowanie GRL Test Harness zapewnia zaawansowaną funkcję automatycznego wykrywania (Auto DUT), które przyspiesza proces weryfikacji stosu plików referencyjnych Thread dostawców.

W OpenThread znajdziesz przykład Interfejs kontrolera hosta Thread (THCI) który pozwala za pomocą jarzma testów kontrolować komponent lub produkt w taki sposób, jakby z platform referencyjnych. Zgodnie z właściwościami portu szeregowego urządzenia Twojej konkretnej platformy, DUT może:

Korzystanie z istniejącej platformy referencyjnej OpenThread

Jeśli port szeregowy urządzenia DUT działa zgodnie z ustawieniami 115200 8-N-1, urządzenie prawidłowo reaguje po każdym zresetowaniu urządzenia fizycznego (na przykład potwierdzenie prawidłowego połączenia urządzenia z komputerem z systemem Windows), a następnie może użyć narzędzia OpenThread THCI. Dzięki niemu urządzenie może pełnić funkcję Platforma referencyjna OpenThread podczas testowania.

  1. Zamknij Harness GRL, jeśli jest otwarta.
  2. Podłącz urządzenie do komputera z systemem Windows.
  3. Znajdź identyfikator sprzętowy portu szeregowego urządzenia za pomocą parametru pySerial w Pythonie część:
    1. Zainstaluj pySerial na komputerze z systemem Windows.
    2. Używanie Pythona w wierszu poleceń systemu Windows w celu wyliczenia całego sprzętu (VID i PID) urządzeń podłączonych do maszyny. W tym dane wyjściowe, jedno urządzenie jest połączone z identyfikatorem VID=1366 i PID=1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. Jeśli znasz już port COM, możesz użyć innego polecenia. Dla: Jeśli na przykład port COM to 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. Zaktualizuj listę urządzeń złotych:
    1. Otwórz pokój C:\GRL\Thread1.1\Config\Configuration.ini.
    2. Aktualizowanie grupy OpenThread w tablicy GoldenDeviceHardwareIds z VID i PID urządzeń:
      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. Włącz tryb automatycznego trybu DUT.

Działa jako nowa platforma referencyjna

Jeśli port szeregowy urządzenia DUT nie działa pod odpowiednim portem szeregowym ustawień lub urządzenie nie reaguje prawidłowo po włożeniu do urządzenia fizycznego resetuje (wyświetla nieczytelny kod w ciągu 3–6 sekund od zresetowania), a następnie OpenThread THCI można dostosować tak, aby urządzenie traktowało urządzenie jako nową platformę w ramach testów Szelki.

Przykładowo, aby dostosować THCI za pomocą parametru Nordic Semiconductor, Platforma nRF52840:

  1. Zamknij Harness GRL, jeśli jest otwarta.
  2. Zmień /tools/harness-thci/OpenThread.py na podstawie charakterystyki UART urządzenia docelowego. Zmiany mogą różnią się w zależności od urządzenia docelowego. W przypadku platformy Nordic nRF52840:

    1. Zmień nazwę pliku OpenThread.py na nRF52840.py.
    2. Zmiana 3 pierwszych wystąpień „OpenThread” do numeru „nRF52840”:

      >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
      
    3. Zmień parametry portu szeregowego:

      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. Zmień czas uśpienia, aby wyeliminować wpływ nieczytelnego kodu po zresetowaniu urządzenia:

      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. Skopiuj zmodyfikowany plik nRF52840.py do folderu C:\GRL\Thread1.1\Thread_Harness\THCI

  4. Dodaj informacje o nowej platformie do jarzma testowego:

    1. Utwórz ikonę (w formacie PNG lub JPG), aby łatwiej ją odróżnić swoją platformę i skopiuj ją do C:\GRL\Thread1.1\Web\images.
    2. Zaktualizuj aplikację C:\GRL\Thread1.1\Web\data\deviceInputFields.xml o nową wersję DEVICE, gdzie parametr thumbnail to plik ikony:

      <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. Podłącz urządzenie do komputera z systemem Windows.

  6. Znajdź identyfikator sprzętowy portu szeregowego urządzenia za pomocą parametru pySerial w Pythonie część:

    1. Zainstaluj pySerial na komputerze z systemem Windows.
    2. Używanie Pythona w wierszu poleceń systemu Windows w celu wyliczenia całego sprzętu (VID i PID) urządzeń podłączonych do maszyny. W tym dane wyjściowe, jedno urządzenie jest połączone z identyfikatorem VID=1366 i PID=1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. Jeśli znasz już port COM, możesz użyć innego polecenia. Dla: Jeśli na przykład port COM to 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. Zaktualizuj listę urządzeń złotych:

    1. Otwórz pokój C:\GRL\Thread1.1\Config\Configuration.ini.
    2. Dodaj nową grupę platform do tablicy GoldenDeviceHardwareIds za pomocą identyfikatora VID i PID urządzenia:
      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. Włącz tryb automatycznego trybu DUT.

Włącz tryb automatycznego DUT

Po skonfigurowaniu jednej z tych 2 opcji konfiguracji:

  1. Otwórz zestaw testów GRL. Urządzenie/port będzie teraz wyświetlane jako nowe odniesienie urządzenia.
  2. Zaznacz pole wyboru Włącz automatyczne wybieranie urządzeń DUT pod opcją Obsługiwane Lista urządzeń.
  3. Pod urządzeniem/portem docelowym, które chcesz ustawić, wybierz opcję Ustaw jako DUT. jako urządzenia z funkcją DUT.
Certyfikacja OT: AutoDUT