Aby zautomatyzować testy certyfikacyjne, musisz wykonać dodatkową konfigurację.
Wszystkie poniższe kroki instalacji i konfiguracji są wykonywane na komputerze z systemem Windows, na którym jest zainstalowane oprogramowanie GRL Test Harness. Zanim przejdziesz dalej, pobierz i zainstaluj najnowszą wersję GRL Thread Test Harness.
Po zainstalowaniu dostępne są 2 metody automatyzacji urządzenia testowego:
- Narzędzie do automatyzacji OpenThread Harness
- Tryb automatycznego testowania urządzenia w jarzmie testowym
Narzędzie do automatyzacji OpenThread Harness
Zainstaluj
- Zainstaluj to oprogramowanie:
- Python 2.7
- Git dla systemu Windows (zdecydowanie zalecana jest obsługa powłoki Bash)
- Sklonuj repozytorium OpenThread, aby uzyskać skrypty automatyzacji:
git clone https://github.com/openthread/openthread - Zainstaluj wymagania Pythona:
cd tools/harness-automationpip install -r requirements.txt - Zainstaluj zarówno Google Chrome, jak i ChromeDriver.
Skonfiguruj
- Utwórz plik konfiguracji narzędzia do automatyzacji:
cp autothreadharness/settings_sample.py autothreadharness/settings.py - Zaktualizuj nowy plik konfiguracji zgodnie z instrukcjami w pliku.
- Dodaj ten parametr do pliku konfiguracji jarzma testowego, który znajdziesz w tym miejscu:
C:\GRL\Thread1.1\Config\Configuration.iniBrowserAutoNavigate = False
Obsługa mieszanych platform testowych
Narzędzie do automatyzacji Harness obsługuje też mieszane platformy testowe, w których urządzenia referencyjne używane w każdym przypadku testowym stanowią mieszany zestaw urządzeń, a nie wszystkie są takie same. Na przykład zamiast używać 32 płytek TI CC2538 z oprogramowaniem OpenThread we wszystkich przypadkach testowych, możesz w każdym przypadku testowym dowolnie łączyć wszystkie 4 urządzenia referencyjne Thread.
Aby korzystać z mieszanych platform testowych, musisz wykonać dodatkową konfigurację:
- Dodaj ten parametr dodatkowy do pliku konfiguracji Test Harness, który znajdziesz w lokalizacji
C:\GRL\Thread1.1\Config\Configuration.ini:EnableDeviceSelection = True
- Pobierz plik konfiguracji topologii z grupy wątków.
Dodaj ten plik jako
TopologyConfig.txtdoC:\GRL\Thread1.1\Thread_Harness\TestScripts. Ten plik zawiera szczegółowe informacje o tym, którego urządzenia referencyjnego należy użyć w przypadku każdej roli w każdym przypadku testowym.
Plik konfiguracji topologii dostarczony przez Thread Group można modyfikować w przypadku innych konfiguracji mieszanych, ale w celu uzyskania oficjalnego certyfikatu należy użyć oryginalnej konfiguracji.
Prawidłowe wartości, które można zastosować w przypadku urządzeń referencyjnych w pliku konfiguracji topologii:
| Wartość w pliku konfiguracji topologii | Urządzenie referencyjne jarzma testowego |
|---|---|
ARM |
ARM: NXP FRDM-K64F z Firefly 6LoWPAN Shield |
NXP |
NXP(Freescale): USB-KW24D512 Dongles |
OpenThread |
OpenThread: TI CC2538DK |
SiLabs |
Silabs: EM358x USB Stick |
Każdy wpis testowy w pliku konfiguracji topologii musi znajdować się w osobnym wierszu i mieć format par role:device:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
Tryb automatycznego testowania urządzenia w jarzmie testowym
Oprogramowanie GRL Test Harness udostępnia zaawansowaną funkcję automatycznego wykrywania (Auto DUT), która przyspiesza proces weryfikacji stosu referencyjnego Thread dla dostawców.
OpenThread udostępnia przykładowy interfejs kontrolera hosta Thread (THCI), który umożliwia narzędziu Test Harness sterowanie komponentem lub produktem tak, jakby był on jedną z platform referencyjnych. Zgodnie z charakterystyką portu szeregowego na Twojej platformie urządzenie DUT może:
pełnić funkcję istniejącej platformy referencyjnej OpenThread,
Jeśli port szeregowy DUT działa w ustawieniach 115200 8-N-1, a urządzenie prawidłowo odpowiada po każdym fizycznym resecie (np. w celu potwierdzenia prawidłowego połączenia z komputerem z systemem Windows), platforma może używać narzędzia OpenThread THCI. To narzędzie umożliwia urządzeniu pełnienie funkcji platformy referencyjnej OpenThread podczas testowania.
- Jeśli narzędzie GRL Test Harness jest otwarte, zamknij je.
- Podłącz urządzenie do komputera z systemem Windows.
- Znajdź identyfikator sprzętowy portu szeregowego urządzenia, korzystając z modułu pySerial w języku Python:
- Zainstaluj pySerial na komputerze z systemem Windows.
- Użyj języka Python w wierszu poleceń systemu Windows, aby wyświetlić wszystkie identyfikatory sprzętu (VID i PID) urządzeń podłączonych do komputera. W tym wyniku jedno urządzenie jest połączone z identyfikatorem VID=1366 i PID=1015:
python -m serial.tools.list_ports -vCOM10desc: USB Serial Port (COM10)hwid: USB\VID_1366+PID_1015+MI_00 - Jeśli znasz już port COM, możesz użyć innego polecenia. 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']
- Zaktualizuj listę urządzeń wzorcowych:
- Otwórz pokój
C:\GRL\Thread1.1\Config\Configuration.ini. - Zaktualizuj grupę OpenThread w tablicy
GoldenDeviceHardwareIds, podając identyfikatory 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']}
- Otwórz pokój
- Włącz automatyczny tryb urządzenia.
pełnić rolę nowej platformy referencyjnej,
Jeśli port szeregowy DUT nie działa z prawidłowymi ustawieniami portu szeregowego lub urządzenie nie odpowiada prawidłowo po fizycznym zresetowaniu (w ciągu 3–6 sekund od zresetowania wysyła nieczytelny kod), można dostosować OpenThread THCI, aby traktować urządzenie jako nową platformę w Test Harness.
Aby na przykład dostosować THCI za pomocą platformy Nordic Semiconductor nRF52840:
- Jeśli narzędzie GRL Test Harness jest otwarte, zamknij je.
Zmodyfikuj parametr
/tools/harness-thci/OpenThread.pyzgodnie z charakterystyką UART urządzenia docelowego. Modyfikacje mogą się różnić w zależności od urządzeń docelowych. W przypadku platformy Nordic nRF52840:- Zmień nazwę pliku
OpenThread.pynanRF52840.py. Zmień pierwsze 3 wystąpienia słowa „OpenThread” na „nRF52840”:
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):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()Zmień czas uśpienia, aby wyeliminować wpływ nieczytelnego kodu wyjściowego 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)
- Zmień nazwę pliku
Skopiuj zmodyfikowany plik
nRF52840.pydoC:\GRL\Thread1.1\Thread_Harness\THCIDodaj informacje o nowej platformie do narzędzia Test Harness:
- Utwórz ikonę (w formacie PNG lub JPG), aby łatwiej było odróżnić Twoją platformę, i skopiuj ją do
C:\GRL\Thread1.1\Web\images. Zaktualizuj
C:\GRL\Thread1.1\Web\data\deviceInputFields.xml, dodając nową sekcjęDEVICE, w której parametrthumbnailto 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>
- Utwórz ikonę (w formacie PNG lub JPG), aby łatwiej było odróżnić Twoją platformę, i skopiuj ją do
Podłącz urządzenie do komputera z systemem Windows.
Znajdź identyfikator sprzętowy portu szeregowego urządzenia, korzystając z modułu pySerial Pythona:
- Zainstaluj pySerial na komputerze z systemem Windows.
- Użyj języka Python w wierszu poleceń systemu Windows, aby wyświetlić wszystkie identyfikatory sprzętu (VID i PID) urządzeń podłączonych do komputera. W tym wyniku jedno urządzenie jest połączone z identyfikatorem VID=1366 i PID=1015:
python -m serial.tools.list_ports -vCOM10desc: USB Serial Port (COM10)hwid: USB\VID_1366+PID_1015+MI_00 - Jeśli znasz już port COM, możesz użyć innego polecenia. 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']
Zaktualizuj listę urządzeń Golden Device:
- Otwórz pokój
C:\GRL\Thread1.1\Config\Configuration.ini. - Dodaj nową grupę platform w tablicy
GoldenDeviceHardwareIdsz identyfikatorami 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'}
- Otwórz pokój
Włączanie trybu automatycznego DUT
Po zakończeniu jednej z dwóch powyższych opcji konfiguracji:
- Otwórz GRL Test Harness. Urządzenie lub port pojawi się teraz jako nowe urządzenie referencyjne.
- Zaznacz pole wyboru Enable Auto DUT Device Selection (Włącz automatyczny wybór urządzenia DUT) pod listą Supported Hardware (Obsługiwany sprzęt).
- Wybierz przycisk opcji Ustaw jako DUT pod urządzeniem docelowym lub portem, aby ustawić urządzenie jako DUT.