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.
Konfigurieren von Einstellungen für Test Runner
Um benutzerdefinierte Testsuiten auszuführen, müssen Test Runner ihre Einstellungen basierend auf der Testsuite konfigurieren, die sie ausführen möchten. Die Einstellungen werden basierend auf Konfigurationsdateivorlagen im
Ordner angegeben. Falls erforderlich, müssen Test Runner auch AWS Anmeldeinformationen einrichten, die IDT für die Verbindung mit der AWS Cloud verwendet. <device-tester-extract-location>
/configs/
Als Test-Writer müssen Sie diese Dateien konfigurieren, um Ihre Testsuite zu debuggen. Sie müssen Anweisungen zum Testen von Runnern bereitstellen, damit diese die folgenden Einstellungen nach Bedarf konfigurieren können, um Ihre Testsuiten auszuführen.
Konfigurieren von device.json
Die device.json
Datei enthält Informationen zu den Geräten, auf denen Tests ausgeführt werden (z. B. IP-Adresse, Anmeldeinformationen, Betriebssystem und CPU-Architektur).
Test Runner können diese Informationen mithilfe der folgenden device.json
Vorlagendatei bereitstellen, die sich im
Ordner befindet.<device-tester-extract-location>
/configs/
[ { "id": "
<pool-id>
", "sku": "<pool-sku>
", "features": [ { "name": "<feature-name>
", "value": "<feature-value>
", "configs": [ { "name": "<config-name>
", "value":"<config-value>
" } ], } ], "devices": [ { "id": "<device-id>
", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>
", "port":<port-number>
, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>
", // pki "privKeyPath": "/path/to/private/key
", // password "password": "<password>
", } }, // uart "serialPort": "<serial-port>
", // docker "containerId": "<container-id>
", "containerUser": "<container-user-name>
", } } ] } ]
Nachfolgend sind alle Pflichtfelder beschrieben:
id
-
Eine benutzerdefinierte alphanumerische ID, die eine Sammlung von Geräten, den sogenannten Gerätepool, eindeutig identifiziert. Geräte, die zu einem Pool gehören, müssen über identische Hardware verfügen. Bei der Ausführung einer Reihe von Tests werden Geräte im Pool verwendet, um die Workload zu parallelisieren. Mehrere Geräte werden verwendet, um verschiedene Tests auszuführen.
sku
-
Ein alphanumerischer Wert, durch den das zu testende Gerät eindeutig identifiziert wird. Die SKU wird verwendet, um qualifizierte Geräte zu verfolgen.
Anmerkung
Wenn Sie Ihr Board im AWS Partner-Gerätekatalog auflisten möchten, muss die hier angegebene SKU mit der SKU übereinstimmen, die Sie während des Einreichungsprozesses verwenden.
features
-
Optional. Ein Array, das die Funktionen enthält, die das Gerät unterstützt. Gerätefunktionen sind benutzerdefinierte Werte, die Sie in Ihrer Testsuite konfigurieren. Sie müssen Ihren Test-Runnern Informationen zu den Feature-Namen und -Werten bereitstellen, die in die
device.json
Datei aufgenommen werden sollen. Wenn Sie beispielsweise ein Gerät testen möchten, das als MQTT-Server für andere Geräte fungiert, können Sie Ihre Testlogik so konfigurieren, dass bestimmte unterstützte Stufen für ein Feature namens validiert werdenMQTT_QOS
. Test Runner geben diesen Feature-Namen an und setzen den Feature-Wert auf die von ihrem Gerät unterstützten QOS-Level. Sie können die bereitgestellten Informationen aus dem IDT-Kontext mit derdevicePool.features
Abfrage oder aus dem Testorchestrator-Kontext mit derpool.features
Abfrage abrufen.features.name
-
Der Name des Features.
features.value
-
Die unterstützten Feature-Werte.
features.configs
-
Konfigurationseinstellungen für die Funktion, falls erforderlich.
features.config.name
-
Der Name der Konfigurationseinstellung.
features.config.value
-
Die unterstützten Einstellungswerte.
devices
-
Ein Array von Geräten im Pool, die getestet werden sollen. Mindestens ein Gerät ist erforderlich.
devices.id
-
Eine benutzerdefinierte eindeutige Kennung für das zu testende Gerät.
connectivity.protocol
-
Das Kommunikationsprotokoll, das für die Kommunikation mit diesem Gerät verwendet wird. Jedes Gerät in einem Pool muss dasselbe Protokoll verwenden.
Derzeit werden nur die Werte
ssh
unduart
für physische Geräte unddocker
für Docker-Container unterstützt. connectivity.ip
-
Die IP-Adresse des zu testenden Geräts.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist. connectivity.port
-
Optional. Die Portnummer, die für SSH-Verbindungen verwendet werden soll.
Der Standardwert ist 22.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist. connectivity.auth
-
Authentifizierungsinformationen für die Verbindung.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
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.password
-
Das Passwort für die Anmeldung am Gerät wird überprüft.
Dieser Wert gilt nur, wenn
connectivity.auth.method
aufpassword
festgelegt ist. connectivity.auth.credentials.privKeyPath
-
Der vollständige Pfad zum privaten Schlüssel, der für die Anmeldung bei dem zu testenden Gerät verwendet wird.
Dieser Wert gilt nur, wenn
connectivity.auth.method
aufpki
festgelegt ist. connectivity.auth.credentials.user
-
Der Benutzername für die Anmeldung bei dem zu testenden Gerät.
connectivity.serialPort
-
Optional. Die serielle Schnittstelle, mit der das Gerät verbunden ist.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufuart
festgelegt ist. connectivity.containerId
-
Die Container-ID oder der Name des getesteten Docker-Containers.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist. connectivity.containerUser
-
Optional. Der Name des Benutzers, der innerhalb des Containers verwendet werden soll. Der Standardwert ist der im Dockerfile bereitgestellte Benutzer.
Der Standardwert ist 22.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist.
Anmerkung
Um zu überprüfen, ob Test Runner die falsche Geräteverbindung für einen Test konfigurieren, können Sie
pool.Devices[0].Connectivity.Protocol
aus dem Testorchestrator-Kontext abrufen und ihn mit dem erwarteten Wert in einem -Choice
Zustand vergleichen. Wenn ein falsches Protokoll verwendet wird, drucken Sie eine Nachricht mit demLogMessage
Status und wechseln Sie in denFail
Status .Alternativ können Sie Fehlerbehandlungscode verwenden, um einen Testfehler für falsche Gerätetypen zu melden.
(Optional) Konfigurieren von userdata.json
Die userdata.json
Datei enthält alle zusätzlichen Informationen, die von einer Testsuite benötigt werden, aber nicht in der device.json
Datei angegeben sind. Das Format dieser Datei hängt von der userdata_scheme.json Datei ab, die in der Testsuite definiert ist. Wenn Sie ein Test-Writer sind, stellen Sie sicher, dass Sie diese Informationen Benutzern bereitstellen, die die von Ihnen geschriebenen Testsuiten ausführen.
(Optional) Konfigurieren von resource.json
Die resource.json
Datei enthält Informationen zu allen Geräten, die als Ressourcengeräte verwendet werden. Ressourcengeräte sind Geräte, die erforderlich sind, um bestimmte Funktionen eines getesteten Geräts zu testen. Um beispielsweise die Bluetooth-Fähigkeit eines Geräts zu testen, können Sie ein Ressourcengerät verwenden, um zu testen, ob Ihr Gerät erfolgreich eine Verbindung herstellen kann. Ressourcengeräte sind optional und Sie können so viele Ressourcengeräte benötigen, wie Sie benötigen. Als Test-Writer verwenden Sie die Datei test.json, um die Features des Ressourcengeräts zu definieren, die für einen Test erforderlich sind. Test-Runner verwenden dann die -resource.json
Datei, um einen Pool von Ressourcengeräten bereitzustellen, die über die erforderlichen Funktionen verfügen. Stellen Sie sicher, dass Sie diese Informationen Benutzern bereitstellen, die die von Ihnen geschriebenen Testsuiten ausführen.
Test Runner können diese Informationen mithilfe der folgenden resource.json
Vorlagendatei bereitstellen, die sich im
Ordner befindet.<device-tester-extract-location>
/configs/
[ { "id": "
<pool-id>
", "features": [ { "name": "<feature-name>
", "version": "<feature-version>
", "jobSlots":<job-slots>
} ], "devices": [ { "id": "<device-id>
", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>
", "port":<port-number>
, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>
", // pki "privKeyPath": "/path/to/private/key
", // password "password": "<password>
", } }, // uart "serialPort": "<serial-port>
", // docker "containerId": "<container-id>
", "containerUser": "<container-user-name>
", } } ] } ]
Nachfolgend sind alle Pflichtfelder beschrieben:
id
-
Eine benutzerdefinierte alphanumerische ID, die eine Sammlung von Geräten, den sogenannten Gerätepool, eindeutig identifiziert. Geräte, die zu einem Pool gehören, müssen über identische Hardware verfügen. Bei der Ausführung einer Reihe von Tests werden Geräte im Pool verwendet, um die Workload zu parallelisieren. Mehrere Geräte werden verwendet, um verschiedene Tests auszuführen.
features
-
Optional. Ein Array, das die Funktionen enthält, die das Gerät unterstützt. Die in diesem Feld erforderlichen Informationen sind in den test.json-Dateien in der Testsuite definiert und bestimmen, welche Tests ausgeführt werden sollen und wie diese Tests ausgeführt werden sollen. Wenn die Testsuite keine Funktionen benötigt, ist dieses Feld nicht erforderlich.
features.name
-
Der Name des Features.
features.version
-
Die Feature-Version.
features.jobSlots
-
Einstellung, um anzugeben, wie viele Tests das Gerät gleichzeitig verwenden können. Der Standardwert ist
1
.
devices
-
Ein Array von Geräten im Pool, die getestet werden sollen. Mindestens ein Gerät ist erforderlich.
devices.id
-
Eine benutzerdefinierte eindeutige Kennung für das zu testende Gerät.
connectivity.protocol
-
Das Kommunikationsprotokoll, das für die Kommunikation mit diesem Gerät verwendet wird. Jedes Gerät in einem Pool muss dasselbe Protokoll verwenden.
Derzeit werden nur die Werte
ssh
unduart
für physische Geräte unddocker
für Docker-Container unterstützt. connectivity.ip
-
Die IP-Adresse des zu testenden Geräts.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist. connectivity.port
-
Optional. Die Portnummer, die für SSH-Verbindungen verwendet werden soll.
Der Standardwert ist 22.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist. connectivity.auth
-
Authentifizierungsinformationen für die Verbindung.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
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.password
-
Das Passwort für die Anmeldung am Gerät wird überprüft.
Dieser Wert gilt nur, wenn
connectivity.auth.method
aufpassword
festgelegt ist. connectivity.auth.credentials.privKeyPath
-
Der vollständige Pfad zum privaten Schlüssel, der für die Anmeldung bei dem zu testenden Gerät verwendet wird.
Dieser Wert gilt nur, wenn
connectivity.auth.method
aufpki
festgelegt ist. connectivity.auth.credentials.user
-
Der Benutzername für die Anmeldung bei dem zu testenden Gerät.
connectivity.serialPort
-
Optional. Die serielle Schnittstelle, mit der das Gerät verbunden ist.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufuart
festgelegt ist. connectivity.containerId
-
Die Container-ID oder der Name des getesteten Docker-Containers.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist. connectivity.containerUser
-
Optional. Der Name des Benutzers, der innerhalb des Containers verwendet werden soll. Der Standardwert ist der im Dockerfile bereitgestellte Benutzer.
Der Standardwert ist 22.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist.
(Optional) Konfigurieren von config.json
Die config.json
Datei enthält Konfigurationsinformationen für IDT. In der Regel müssen Test-Runner diese Datei nicht ändern, es sei denn, sie geben ihre AWS Benutzeranmeldeinformationen für IDT und optional für eine -AWSRegion an. Wenn AWS Anmeldeinformationen mit den erforderlichen Berechtigungen bereitgestellt werden, werden Nutzungsmetriken AWS IoT Device Tester erfasst und an übermitteltAWS. Dies ist eine Opt-In-Funktion und wird zur Verbesserung der IDT-Funktionalität verwendet. Weitere Informationen finden Sie unter IDT-Nutzungsmetriken.
Test Runner können ihre AWS Anmeldeinformationen auf eine der folgenden Arten konfigurieren:
-
Anmeldeinformationsdatei
IDT verwendet die gleiche Anmeldeinformationsdatei wie das AWS CLI. Weitere Informationen finden Sie unter Konfigurations- und Anmeldeinformationsdateien.
Der Speicherort der Datei mit den Anmeldeinformationen variiert je nach verwendetem Betriebssystem:
-
macOS Linux:
~/.aws/credentials
-
Windows:
C:\Users\
UserName
\.aws\credentials
-
-
Umgebungsvariablen
Umgebungsvariablen sind Variablen, die vom Betriebssystem gepflegt und von Systembefehlen verwendet werden. Variablen, die während einer SSH-Sitzung definiert wurden, sind nicht verfügbar, nachdem diese Sitzung geschlossen wurde. IDT kann die
AWS_SECRET_ACCESS_KEY
UmgebungsvariablenAWS_ACCESS_KEY_ID
und verwenden, um AWS Anmeldeinformationen zu speichernUm diese Variablen auf Linux, macOS oder Unix festzulegen, verwenden Sie export:
export AWS_ACCESS_KEY_ID=
<your_access_key_id>
export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
In Windows können Sie die Variablen mit set festlegen:
set AWS_ACCESS_KEY_ID=
<your_access_key_id>
set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
Um AWS Anmeldeinformationen für IDT zu konfigurieren, bearbeiten Test-Runner den -auth
Abschnitt in der config.json
Datei im
Ordner .<device-tester-extract-location>
/configs/
{ "log": { "location": "
logs
" }, "configFiles": { "root": "configs
", "device": "configs/device.json
" }, "testPath": "tests
", "reportPath": "results
", "awsRegion": "<region>
", "auth": { "method": "file | environment", "credentials": { "profile": "<profile-name>
" } } } ]
Nachfolgend sind alle Pflichtfelder beschrieben:
Anmerkung
Alle Pfade in dieser Datei sind relativ zum <device-tester-extract-location>
definiert.
log.location
-
Der Pfad zum Protokollordner im
<device-tester-extract-location>
. configFiles.root
-
Der Pfad zu dem Ordner, der die Konfigurationsdateien enthält.
configFiles.device
-
Der Pfad zur
device.json
Datei. testPath
-
Der Pfad zu dem Ordner, der Testsuiten enthält.
reportPath
-
Der Pfad zu dem Ordner, der die Testergebnisse enthält, nachdem IDT eine Testsuite ausgeführt hat.
awsRegion
-
Optional. Die AWS Region, die Testsuiten verwenden werden. Wenn nicht festgelegt, verwendet Testsuiten die Standardregion, die in jeder Testsuite angegeben ist.
auth.method
-
Die Methoden-IDT verwendet , um AWS Anmeldeinformationen abzurufen. Unterstützte Werte sind
file
das Abrufen von Anmeldeinformationen aus einer Anmeldeinformationsdatei undenvironment
das Abrufen von Anmeldeinformationen mithilfe von Umgebungsvariablen. auth.credentials.profile
-
Das Anmeldeinformationsprofil, das aus der Anmeldeinformationsdatei verwendet werden soll. Diese Eigenschaft gilt nur, wenn
auth.method
auffile
festgelegt ist.