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):
Narzędzie do automatyzacji OpenThread Harness
Zainstaluj
- Zainstaluj następujące oprogramowanie:
- Python 2.7
- Git dla systemu Windows (zdecydowanie zalecana obsługa bash)
- Skopiuj repozytorium OpenThread, aby pobrać skrypty automatyzacji:
git clone https://github.com/openthread/openthread
- Zainstaluj wymagania Pythona:
cd tools/harness-automation
pip install -r requirements.txt
- Zainstaluj Google Chrome 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 .
- 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:
- Dodaj następujący dodatkowy parametr do konfiguracji jarzma testów
plik znaleziony pod adresem
C:\GRL\Thread1.1\Config\Configuration.ini
:EnableDeviceSelection = True
- Pobierz plik konfiguracji topologii z Thread
Grupa.
Dodaj ten plik jako
TopologyConfig.txt
doC:\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.
- Zamknij Harness GRL, jeśli jest otwarta.
- Podłącz urządzenie do komputera z systemem Windows.
- Znajdź identyfikator sprzętowy portu szeregowego urządzenia za pomocą parametru pySerial w Pythonie
część:
- Zainstaluj pySerial na komputerze z systemem Windows.
- 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
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- 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']
- Zaktualizuj listę urządzeń złotych:
- Otwórz pokój
C:\GRL\Thread1.1\Config\Configuration.ini
. - 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']}
- Otwórz pokój
- 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:
- Zamknij Harness GRL, jeśli jest otwarta.
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:- Zmień nazwę pliku
OpenThread.py
nanRF52840.py
. Zmiana 3 pierwszych wystąpień „OpenThread” do numeru „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 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.py
do folderuC:\GRL\Thread1.1\Thread_Harness\THCI
Dodaj informacje o nowej platformie do jarzma testowego:
- 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
. Zaktualizuj aplikację
C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
o nową wersjęDEVICE
, gdzie parametrthumbnail
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>
- Utwórz ikonę (w formacie PNG lub JPG), aby łatwiej ją odróżnić
swoją platformę i skopiuj ją do
Podłącz urządzenie do komputera z systemem Windows.
Znajdź identyfikator sprzętowy portu szeregowego urządzenia za pomocą parametru pySerial w Pythonie część:
- Zainstaluj pySerial na komputerze z systemem Windows.
- 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
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- 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']
Zaktualizuj listę urządzeń złotych:
- Otwórz pokój
C:\GRL\Thread1.1\Config\Configuration.ini
. - 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'}
- Otwórz pokój
Włącz tryb automatycznego DUT
Po skonfigurowaniu jednej z tych 2 opcji konfiguracji:
- Otwórz zestaw testów GRL. Urządzenie/port będzie teraz wyświetlane jako nowe odniesienie urządzenia.
- Zaznacz pole wyboru Włącz automatyczne wybieranie urządzeń DUT pod opcją Obsługiwane Lista urządzeń.
- Pod urządzeniem/portem docelowym, które chcesz ustawić, wybierz opcję Ustaw jako DUT. jako urządzenia z funkcją DUT.