Um Automatisierungstests zu automatisieren, ist eine zusätzliche Einrichtung erforderlich.
Alle folgenden Installations- und Konfigurationsschritte werden auf dem Windows-Computer ausgeführt, auf dem die GRL-Testkabelbaumsoftware ausgeführt wird. Laden Sie den neuesten GRL-Gewindetestkabelbaum herunter und installieren Sie ihn, bevor Sie fortfahren.
Nach der Installation gibt es zwei Automatisierungsmethoden für das zu testende Gerät (DUT):
OpenThread Harness Automation Tool
Installieren
- Installieren Sie die folgende Software:
- Python 2.7
- Git für Windows (Bash-Unterstützung wird dringend empfohlen)
- Klonen Sie das OpenThread-Repository, um die Automatisierungsskripte abzurufen:
git clone https://github.com/openthread/openthread
- Installieren Sie die Python-Anforderungen:
cd tools/harness-automation
pip install -r requirements.txt
- Installieren Sie sowohl Google Chrome als auch ChromeDriver .
Konfigurieren
- Erstellen Sie eine Konfigurationsdatei für das Automatisierungstool:
cp autothreadharness/settings_sample.py autothreadharness/settings.py
- Aktualisieren Sie diese neue Konfigurationsdatei gemäß den Anweisungen in der Datei.
- Fügen Sie der Test Harness-Konfigurationsdatei unter
C:\GRL\Thread1.1\Config\Configuration.ini
den folgenden Parameter hinzuC:\GRL\Thread1.1\Config\Configuration.ini
:BrowserAutoNavigate = False
Gemischte Testbed-Unterstützung
Das Harness Automation Tool unterstützt auch gemischte Testumgebungen, bei denen die in jedem Testfall verwendeten Referenzgeräte ein gemischter Satz von Geräten sind und nicht alle dasselbe Gerät. Anstatt beispielsweise 32 TI CC2538-Karten zu verwenden, auf denen OpenThread für alle Testfälle ausgeführt wird, können Sie nach Bedarf alle vier Thread-Referenzgeräte für jeden Testfall mischen und anpassen.
Für die Verwendung gemischter Prüfstände ist eine zusätzliche Konfiguration erforderlich:
- Fügen Sie der Test Harness-Konfigurationsdatei unter
C:\GRL\Thread1.1\Config\Configuration.ini
den folgenden zusätzlichen Parameter hinzu:EnableDeviceSelection = True
- Laden Sie die Topologie-Konfigurationsdatei von der Thread-Gruppe herunter . Fügen Sie diese Datei als
TopologyConfig.txt
zuC:\GRL\Thread1.1\Thread_Harness\TestScripts
. In dieser Datei wird angegeben, welches Referenzgerät für jede Rolle in jedem Testfall verwendet werden soll.
Die von der Thread-Gruppe bereitgestellte Topologie-Konfigurationsdatei kann für andere Mischbettkonfigurationen geändert werden. Für die offizielle Zertifizierung muss jedoch die ursprüngliche Konfiguration verwendet werden.
Gültige Werte für Referenzgeräte in der Topologiekonfigurationsdatei sind:
Wert in der Topologie-Konfigurationsdatei | Referenzgerät für Kabelbaum prüfen |
---|---|
ARM | ARM: NXP FRDM-K64F mit Firefly 6LoWPAN Shield |
NXP | NXP (Freescale): USB-KW24D512 Dongles |
OpenThread | OpenThread: TI CC2538DK |
SiLabs | Silabs: EM358x USB Stick |
Jeder Testfalleintrag in der Topologiekonfigurationsdatei muss in einer separaten Zeile stehen und wie folgt in role:device
formatiert sein:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
Testkabelbaum Auto DUT-Modus
Die GRL Test Harness-Software bietet eine erweiterte Auto Discovery-Funktion (Auto DUT), die den Validierungsprozess für Thread-Referenzstapel-Anbieter beschleunigt.
OpenThread bietet ein Beispiel für eine Thread-Host-Controller-Schnittstelle (THCI) , mit der der Testkabelbaum Ihre Komponente oder Ihr Produkt so steuern kann, als wäre es eine der Referenzplattformen. Entsprechend den Eigenschaften der seriellen Schnittstelle Ihrer spezifischen Plattform kann Ihr Prüfling entweder:
Als vorhandene OpenThread-Referenzplattform fungieren
Wenn die serielle Schnittstelle des Prüflings unter den Einstellungen von 115200 8-N-1 funktioniert und das Gerät nach jedem Zurücksetzen des physischen Geräts korrekt reagiert (z. B. um die gültige Verbindung des Geräts mit dem Windows-Computer zu bestätigen), kann die Plattform das verwenden OpenThread THCI-Tool. Mit diesem Tool kann das Gerät während des Tests als OpenThread-Referenzplattform fungieren.
- Schließen Sie den GRL-Testkabelbaum, falls er geöffnet ist.
- Schließen Sie das Gerät an den Windows-Computer an.
- Suchen Sie mithilfe des Python pySerial-Moduls die Hardware-ID der seriellen Schnittstelle des Geräts:
- Installieren Sie pySerial auf dem Windows-Computer.
- Verwenden Sie Python in der Windows-Befehlszeile, um alle Hardware-IDs (VID und PID) für an den Computer angeschlossene Geräte aufzulisten. In diesem Ausgang ist ein Gerät mit einer Kennung von VID = 1366 und PID = 1015:
verbundenpython -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- Wenn Sie den COM-Anschluss bereits kennen, können Sie einen anderen Befehl verwenden. Beispiel: Wenn der COM-Port
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']
- Aktualisieren Sie die Liste der goldenen Geräte:
- Öffnen Sie
C:\GRL\Thread1.1\Config\Configuration.ini
. - Aktualisieren Sie die OpenThread-Gruppe im
GoldenDeviceHardwareIds
Array mit der VID und PID des Geräts (der Geräte):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']}
- Öffnen Sie
- Aktivieren Sie den Auto DUT-Modus .
Als neue Referenzplattform fungieren
Wenn die serielle Schnittstelle des Prüflings unter den richtigen Einstellungen für die serielle Schnittstelle nicht funktioniert oder das Gerät nach einem Zurücksetzen des physischen Geräts nicht richtig reagiert (gibt unlesbaren Code innerhalb von 3-6 Sekunden nach dem Zurücksetzen aus), kann OpenThread THCI zur Behandlung angepasst werden das Gerät als neue Plattform im Testkabelbaum.
So passen Sie beispielsweise THCI mithilfe der Nordic Semiconductor nRF52840- Plattform an:
- Schließen Sie den GRL-Testkabelbaum, falls er geöffnet ist.
/tools/harness-thci/OpenThread.py
basierend auf den UART-Eigenschaften des Zielgeräts. Änderungen können zwischen den Zielgeräten unterschiedlich sein. Im Fall der nordischen nRF52840-Plattform:-
OpenThread.py
DateinRF52840.py
innRF52840.py
. Ändern Sie die ersten drei Vorkommen von "OpenThread" in "nRF52840":
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):
Ändern Sie die Parameter der seriellen Schnittstelle:
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()
Ändern Sie die Ruhezeit, um die Auswirkungen der Ausgabe von nicht lesbarem Code nach dem Zurücksetzen des Geräts zu beseitigen:
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)
-
Kopieren Sie die geänderte Datei
nRF52840.py
nachC:\GRL\Thread1.1\Thread_Harness\THCI
Fügen Sie die neuen Plattforminformationen zum Testkabelbaum hinzu:
- Erstellen Sie ein Symbol (im PNG- oder JPG-Format), um die Unterscheidung Ihrer Plattform zu vereinfachen, und kopieren Sie es nach
C:\GRL\Thread1.1\Web\images
. Aktualisieren Sie
C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
mit einem neuenDEVICE
Abschnitt, in dem derthumbnail
DEVICE
ist:<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>
- Erstellen Sie ein Symbol (im PNG- oder JPG-Format), um die Unterscheidung Ihrer Plattform zu vereinfachen, und kopieren Sie es nach
Schließen Sie das Gerät an den Windows-Computer an.
Suchen Sie mithilfe des Python pySerial-Moduls die Hardware-ID der seriellen Schnittstelle des Geräts:
- Installieren Sie pySerial auf dem Windows-Computer.
- Verwenden Sie Python in der Windows-Befehlszeile, um alle Hardware-IDs (VID und PID) für an den Computer angeschlossene Geräte aufzulisten. In diesem Ausgang ist ein Gerät mit einer Kennung von VID = 1366 und PID = 1015:
verbundenpython -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- Wenn Sie den COM-Anschluss bereits kennen, können Sie einen anderen Befehl verwenden. Beispiel: Wenn der COM-Port
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']
Aktualisieren Sie die Liste der goldenen Geräte:
- Öffnen Sie
C:\GRL\Thread1.1\Config\Configuration.ini
. - Fügen Sie eine neue Plattformgruppe im
GoldenDeviceHardwareIds
Array mit der VID und PID des Geräts hinzu: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'}
- Öffnen Sie
Aktivieren Sie den Auto DUT-Modus
Nachdem eine der beiden oben genannten Konfigurationsoptionen abgeschlossen ist:
- Öffnen Sie den GRL-Testkabelbaum. Das Gerät / der Port wird jetzt als neues Referenzgerät angezeigt.
- Aktivieren Sie das Kontrollkästchen Automatische Auswahl des Prüflings aktivieren unter der Liste der unterstützten Hardware.
- Aktivieren Sie das Optionsfeld Als Prüfling festlegen unter dem Zielgerät / Port, um das Gerät als Prüfling festzulegen.
