Tutorial: Erstellen und führen Sie die Beispiel-IDT-Testsuite aus - AWS IoT Greengrass

AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tutorial: Erstellen und führen Sie die Beispiel-IDT-Testsuite aus

DieAWS IoTDer Download des Gerätetesters enthält den Quellcode für eine Beispiel-Testsuite. Sie können dieses Tutorial ausfüllen, um die Beispiel-Testsuite zu erstellen und auszuführen, um zu verstehen, wie Sie es verwenden könnenAWS IoTDevice Tester fürAWS IoT GreengrassSo führen Sie benutzerdefinierte Test-Suites aus.

In diesem Tutorial führen Sie die folgenden Schritte aus:

  1. Bauen Sie die Beispiel-Testsuite

  2. Verwenden Sie IDT, um die Beispiel-Testsuite auszuführen

Voraussetzungen

Zum Durcharbeiten dieses Tutorials ist Folgendes erforderlich:

  • -Hostcomputer -Anforderungen
    • Neueste Version vonAWS IoTDevice Tester

    • Python3.7 oder höher

      Führen Sie den folgenden Befehl aus, um die Version von Python zu überprüfen, die auf dem Computer installiert ist:

      python3 --version

      Wenn die Verwendung dieses Befehls unter Windows einen Fehler zurückgibt, verwenden Siepython --versionStattdessen geschieht Folgendes. Wenn die zurückgegebene Versionsnummer 3.7 oder höher ist, führen Sie den folgenden Befehl in einem Powershell-Terminal aus, um festzulegenpython3als Alias fürpythonbefehl.

      Set-Alias -Name "python3" -Value "python"

      Wenn keine Versionsinformationen zurückgegeben werden oder die Versionsnummer kleiner als 3.7 ist, befolgen Sie die Anweisungen unterPythonSo installieren Sie Python 3.7+. Weitere Informationen finden Sie im .Python-Dokumentationaus.

    • urllib3

      So überprüfen Sie dasurllib3Führen Sie den folgenden Befehl aus:

      python3 -c 'import urllib3'

      Wennurllib3Führen Sie den folgenden Befehl aus, um es zu installieren:

      python3 -m pip install urllib3
  • Anforderungen an Speichergeräte
    • Ein Gerät mit einem Linux-Betriebssystem und einer Netzwerkverbindung zum selben Netzwerk wie Ihr Host-Computer.

      Wir empfehlen Ihnen, zu verwendenRaspberry Pimit Raspberry Pi OS. Stellen Sie sicher, dass Sie einrichtenSSHSo verbinden Sie sich auf Ihrem Raspberry Pi aus der Ferne.

Geräteinformationen für IDT konfigurieren

Konfigurieren Sie Ihre Geräteinformationen, damit IDT den Test ausführen kann. Sie müssen diedevice.jsonVorlage befindet sich im<device-tester-extract-location>/configsOrdner mit den folgenden Informationen.

[ { "id": "pool", "sku": "N/A", "devices": [ { "id": "<device-id>", "connectivity": { "protocol": "ssh", "ip": "<ip-address>", "port": "<port>", "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", "privKeyPath": "/path/to/private/key", "password": "<password>" } } } } ] } ]

In derdevicesGeben Sie die folgenden Informationen an:

id

Eine benutzerdefinierte eindeutige Kennung für das Gerät.

connectivity.ip

Die IP-Adresse Ihres Geräts.

connectivity.port

Optional. Die Portnummer, die für SSH-Verbindungen zu Ihrem Gerät verwendet werden soll.

connectivity.auth

Authentifizierungsinformationen für die Verbindung.

Diese Eigenschaft gilt nur, wenn connectivity.protocol auf ssh festgelegt ist.

connectivity.auth.method

Die Authentifizierungsmethode, die für den Zugriff über ein bestimmtes Verbindungsprotokoll auf ein Gerät verwendet wird.

Unterstützte Werte sind:

  • pki

  • password

connectivity.auth.credentials

Die für die Authentifizierung verwendeten Anmeldeinformationen.

connectivity.auth.credentials.user

Der Benutzername, mit dem Sie sich bei Ihrem Gerät angemeldet haben.

connectivity.auth.credentials.privKeyPath

Der vollständige Pfad zum privaten Schlüssel, der für die Anmeldung bei Ihrem Gerät verwendet wird.

Dieser Wert gilt nur, wenn connectivity.auth.method auf pki festgelegt ist.

devices.connectivity.auth.credentials.password

Das Passwort für die Anmeldung bei Ihrem Gerät.

Dieser Wert gilt nur, wenn connectivity.auth.method auf password festgelegt ist.

Anmerkung

Geben Sie privKeyPath nur an, wenn method auf pki gesetzt ist.

Geben Sie password nur an, wenn method auf password gesetzt ist.

Bauen Sie die Beispiel-Testsuite

Die<device-tester-extract-location>/samples/python-Ordner enthält Beispielkonfigurationsdateien, Quellcode und das IDT Client SDK, das Sie mit den bereitgestellten Build-Skripten zu einer Testsuite kombinieren können. Die folgende Verzeichnisstruktur zeigt den Speicherort dieser Beispieldateien:

<device-tester-extract-location> ├── ... ├── tests ├── samples │ ├── ... │ └── python │ ├── configuration │ ├── src │ └── build-scripts │ ├── build.sh │ └── build.ps1 └── sdks ├── ... └── python └── idt_client

Um die Testsuite zu erstellen, führen Sie die folgenden Befehle auf Ihrem Host-Computer aus:

Windows
cd <device-tester-extract-location>/samples/python/build-scripts ./build.ps1
Linux, macOS, or UNIX
cd <device-tester-extract-location>/samples/python/build-scripts ./build.sh

Dies erstellt die Beispiel-Testsuite imIDTSampleSuitePython_1.0.0Ordner innerhalb des<device-tester-extract-location>/testsfolder. Überprüfen Sie die Dateien imIDTSampleSuitePython_1.0.0, um zu verstehen, wie die Beispiel-Test-Suite strukturiert ist, und verschiedene Beispiele für ausführbare Testfalldateien und Testkonfiguration JSON-Dateien zu sehen.

Nächster Schritt: Verwenden Sie IDTführen Sie die Beispiel-Testsuite ausdie du geschaffen hast.

Verwenden Sie IDT, um die Beispiel-Testsuite auszuführen

Um die Beispiel-Testsuite auszuführen, führen Sie die folgenden Befehle auf Ihrem Host-Computer aus:

cd <device-tester-extract-location>/bin ./devicetester_[linux | mac | win_x86-64] run-suite --suite-id IDTSampleSuitePython

IDT führt die Beispiel-Testsuite aus und streamt die Ergebnisse zur Konsole. Wenn der Test abgeschlossen ist, sehen Sie die folgenden Informationen:

========== Test Summary ========== Execution Time: 5s Tests Completed: 4 Tests Passed: 4 Tests Failed: 0 Tests Skipped: 0 ---------------------------------- Test Groups: sample_group: PASSED ---------------------------------- Path to IoT Device Tester Report: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/awsiotdevicetester_report.xml Path to Test Execution Logs: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/logs Path to Aggregated JUnit Report: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/IDTSampleSuitePython_Report.xml

Fehlerbehebung

Verwenden Sie die folgenden Informationen, um Probleme beim Ausfüllen des Tutorials zu beheben.

Testfall wird nicht erfolgreich ausgeführt

Wenn der Test nicht erfolgreich ausgeführt wird, streamt IDT die Fehlerprotokolle an die Konsole, die Ihnen bei der Fehlerbehebung beim Testlauf helfen können. Stellen Sie sicher, dass Sie alle treffenVoraussetzungenFür dieses Tutorial.

Es kann keine Verbindung zum zu testenden Gerät hergestellt werden

Überprüfen Sie Folgendes:

  • Ihredevice.jsonenthält die richtige IP-Adresse, den Port und die richtigen Authentifizierungsinformationen.

  • Sie können von Ihrem Host-Computer aus über SSH eine Verbindung zu Ihrem Gerät herstellen.