Configurare le impostazioni per i test runner - AWS IoT Greengrass

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurare le impostazioni per i test runner

Per eseguire suite di test personalizzate, i test runner devono configurare le proprie impostazioni in base alla suite di test che desiderano eseguire. Le impostazioni vengono specificate in base ai modelli di file di configurazione presenti nella <device-tester-extract-location>/configs/ cartella. Se necessario, i test runner devono anche impostare AWS le credenziali che IDT utilizzerà per connettersi al cloud. AWS

In qualità di scrittore di test, dovrai configurare questi file per eseguire il debug della tua suite di test. È necessario fornire istruzioni ai test runner in modo che possano configurare le seguenti impostazioni in base alle esigenze per eseguire le suite di test.

Configura dispositivo.json

Il device.json file contiene informazioni sui dispositivi su cui vengono eseguiti i test (ad esempio, indirizzo IP, informazioni di accesso, sistema operativo e architettura della CPU).

I test runner possono fornire queste informazioni utilizzando il seguente device.json file modello che si trova nella <device-tester-extract-location>/configs/ cartella.

[ { "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>", } } ] } ]

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

id

Un ID alfanumerico definito dall'utente che identifica in modo univoco una raccolta di dispositivi denominata un pool di dispositivi. I dispositivi che appartengono a un pool devono avere lo stesso hardware. Durante l'esecuzione di una suite di test, i dispositivi del pool vengono utilizzati per parallelizzare il carico di lavoro. Più dispositivi vengono utilizzati per eseguire diversi test.

sku

Un valore alfanumerico che identifica in modo univoco il dispositivo sottoposto a test. Lo SKU viene utilizzato per tracciare i dispositivi qualificati.

Nota

Se vuoi elencare la scheda in AWS Partner Device Catalog, il codice SKU specificato qui deve corrispondere al codice SKU utilizzato nel processo di elencazione.

features

Facoltativo. Un array contenente le caratteristiche supportate del dispositivo. Le funzionalità del dispositivo sono valori definiti dall'utente che configuri nella tua suite di test. È necessario fornire ai test runner informazioni sui nomi e sui valori delle funzionalità da includere nel device.json file. Ad esempio, se desiderate testare un dispositivo che funge da server MQTT per altri dispositivi, potete configurare la logica di test per convalidare livelli supportati specifici per una funzionalità denominata. MQTT_QOS I test runner forniscono questo nome di funzionalità e impostano il valore della funzionalità sui livelli QOS supportati dal proprio dispositivo. È possibile recuperare le informazioni fornite dal contesto IDT con la devicePool.features query o dal contesto di test orchestrator con la query. pool.features

features.name

Il nome della funzionalità.

features.value

I valori delle funzionalità supportate.

features.configs

Impostazioni di configurazione, se necessarie, per la funzionalità.

features.config.name

Il nome dell'impostazione di configurazione.

features.config.value

I valori di impostazione supportati.

devices

Una serie di dispositivi nel pool da testare. È richiesto almeno un dispositivo.

devices.id

Un identificativo univoco definito dall'utente del dispositivo sottoposto a test.

connectivity.protocol

Il protocollo di comunicazione utilizzato per comunicare con questo dispositivo. Ogni dispositivo in un pool deve utilizzare lo stesso protocollo.

Attualmente, gli unici valori supportati sono ssh e uart per i dispositivi fisici e docker per i contenitori Docker.

connectivity.ip

L'indirizzo IP del dispositivo sottoposto a test.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.port

Facoltativo. Il numero di porta da utilizzare per le connessioni SSH.

Il valore predefinito è 22.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.auth

Informazioni di autenticazione per la connessione.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.auth.method

Il metodo di autorizzazione utilizzato per accedere a un dispositivo con un determinato protocollo di connettività.

I valori supportati sono:

  • pki

  • password

connectivity.auth.credentials

Le credenziali utilizzate per l'autenticazione.

connectivity.auth.credentials.password

La password utilizzata per l'accesso al dispositivo da testare.

Questo valore si applica solo se connectivity.auth.method è impostato su password.

connectivity.auth.credentials.privKeyPath

Il percorso completo alla chiave privata utilizzata per accedere al dispositivo sottoposto a test.

Questo valore si applica solo se connectivity.auth.method è impostato su pki.

connectivity.auth.credentials.user

Il nome utente per l'accesso al dispositivo sottoposto a test.

connectivity.serialPort

Facoltativo. La porta seriale a cui è collegato il dispositivo.

Questa proprietà si applica solo se connectivity.protocol è impostata su uart.

connectivity.containerId

L'ID contenitore o il nome del contenitore Docker in fase di test.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.containerUser

Facoltativo. Il nome da utente a utente all'interno del contenitore. Il valore predefinito è l'utente fornito nel Dockerfile.

Il valore predefinito è 22.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

Nota

Per verificare se i test runner configurano la connessione errata del dispositivo per un test, puoi recuperarlo pool.Devices[0].Connectivity.Protocol dal contesto del test orchestrator e confrontarlo con il valore previsto in uno stato. Choice Se viene utilizzato un protocollo errato, stampa un messaggio utilizzando LogMessage lo stato e passa allo stato. Fail

In alternativa, è possibile utilizzare il codice di gestione degli errori per segnalare un errore di test per tipi di dispositivi errati.

(Facoltativo) Configura userdata.json

Il userdata.json file contiene tutte le informazioni aggiuntive richieste da una suite di test ma non specificate nel file. device.json Il formato di questo file dipende dal userdata_scheme.jsonfile definito nella suite di test. Se sei uno scrittore di test, assicurati di fornire queste informazioni agli utenti che eseguiranno le suite di test che scrivi.

(Facoltativo) Configura resource.json

Il resource.json file contiene informazioni su tutti i dispositivi che verranno utilizzati come dispositivi di risorse. I dispositivi di risorse sono dispositivi necessari per testare determinate funzionalità di un dispositivo sottoposto a test. Ad esempio, per testare la funzionalità Bluetooth di un dispositivo, è possibile utilizzare un dispositivo di risorse per verificare che il dispositivo sia in grado di connettersi correttamente ad esso. I dispositivi di risorse sono opzionali e puoi richiedere tutti i dispositivi di risorse di cui hai bisogno. In qualità di autore del test, utilizzi il file test.json per definire le funzionalità dei dispositivi di risorse necessarie per un test. I test runner utilizzano quindi il resource.json file per fornire un pool di dispositivi di risorse dotati delle funzionalità richieste. Assicurati di fornire queste informazioni agli utenti che eseguiranno le suite di test che scrivi.

I test runner possono fornire queste informazioni utilizzando il seguente resource.json file modello che si trova nella <device-tester-extract-location>/configs/ cartella.

[ { "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>", } } ] } ]

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

id

Un ID alfanumerico definito dall'utente che identifica in modo univoco una raccolta di dispositivi denominata un pool di dispositivi. I dispositivi che appartengono a un pool devono avere lo stesso hardware. Durante l'esecuzione di una suite di test, i dispositivi del pool vengono utilizzati per parallelizzare il carico di lavoro. Più dispositivi vengono utilizzati per eseguire diversi test.

features

Facoltativo. Un array contenente le caratteristiche supportate del dispositivo. Le informazioni richieste in questo campo sono definite nei file test.json nella suite di test e determinano quali test eseguire e come eseguirli. Se la suite di test non richiede alcuna funzionalità, questo campo non è obbligatorio.

features.name

Il nome della funzionalità.

features.version

La versione della funzionalità.

features.jobSlots

Impostazione per indicare quanti test possono utilizzare il dispositivo contemporaneamente. Il valore predefinito è 1.

devices

Una serie di dispositivi nel pool da testare. È richiesto almeno un dispositivo.

devices.id

Un identificativo univoco definito dall'utente del dispositivo sottoposto a test.

connectivity.protocol

Il protocollo di comunicazione utilizzato per comunicare con questo dispositivo. Ogni dispositivo in un pool deve utilizzare lo stesso protocollo.

Attualmente, gli unici valori supportati sono ssh e uart per i dispositivi fisici e docker per i contenitori Docker.

connectivity.ip

L'indirizzo IP del dispositivo sottoposto a test.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.port

Facoltativo. Il numero di porta da utilizzare per le connessioni SSH.

Il valore predefinito è 22.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.auth

Informazioni di autenticazione per la connessione.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.auth.method

Il metodo di autorizzazione utilizzato per accedere a un dispositivo con un determinato protocollo di connettività.

I valori supportati sono:

  • pki

  • password

connectivity.auth.credentials

Le credenziali utilizzate per l'autenticazione.

connectivity.auth.credentials.password

La password utilizzata per l'accesso al dispositivo da testare.

Questo valore si applica solo se connectivity.auth.method è impostato su password.

connectivity.auth.credentials.privKeyPath

Il percorso completo alla chiave privata utilizzata per accedere al dispositivo sottoposto a test.

Questo valore si applica solo se connectivity.auth.method è impostato su pki.

connectivity.auth.credentials.user

Il nome utente per l'accesso al dispositivo sottoposto a test.

connectivity.serialPort

Facoltativo. La porta seriale a cui è collegato il dispositivo.

Questa proprietà si applica solo se connectivity.protocol è impostata su uart.

connectivity.containerId

L'ID contenitore o il nome del contenitore Docker in fase di test.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.containerUser

Facoltativo. Il nome da utente a utente all'interno del contenitore. Il valore predefinito è l'utente fornito nel Dockerfile.

Il valore predefinito è 22.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

(Facoltativo) Configura config.json

Il config.json file contiene informazioni di configurazione per IDT. In genere, i test runner non avranno bisogno di modificare questo file se non per fornire le proprie credenziali AWS utente per IDT e, facoltativamente, una regione. AWS Se vengono fornite AWS le credenziali con le autorizzazioni richieste, AWS IoT Device Tester raccoglie e invia le metriche di utilizzo a. AWS Si tratta di una funzionalità opzionale e viene utilizzata per migliorare la funzionalità IDT. Per ulteriori informazioni, consulta Metriche di utilizzo IDT.

I test runner possono configurare le proprie AWS credenziali in uno dei seguenti modi:

  • File di credenziali

    IDT usa lo stesso file delle credenziali di AWS CLI. Per ulteriori informazioni, consulta l'argomento relativo ai file di configurazione e delle credenziali.

    La posizione del file delle credenziali varia in base al sistema operativo in uso:

    • macOS, Linux: ~/.aws/credentials

    • Windows: C:\Users\UserName\.aws\credentials

  • Variabili di ambiente

    Le variabili di ambiente sono variabili gestite dal sistema operativo e utilizzate dai comandi di sistema. Le variabili definite durante una sessione SSH non sono disponibili dopo la chiusura della sessione. IDT può utilizzare le variabili di AWS_SECRET_ACCESS_KEY ambiente AWS_ACCESS_KEY_ID e per memorizzare le credenziali AWS

    Per impostare queste variabili su Linux, macOS o Unix, utilizza export:

    export AWS_ACCESS_KEY_ID=<your_access_key_id> export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

    Per impostare queste variabili su Windows, utilizza set:

    set AWS_ACCESS_KEY_ID=<your_access_key_id> set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

Per configurare AWS le credenziali per IDT, i test runner modificano la auth sezione del config.json file che si trova nella cartella. <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>" } } } ]

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

Nota

Tutti i percorsi di questo file sono definiti in relazione a < >. device-tester-extract-location

log.location

Il percorso della cartella logs nel file < device-tester-extract-location >.

configFiles.root

Il percorso della cartella che contiene i file di configurazione.

configFiles.device

Il percorso del device.json file.

testPath

Il percorso della cartella che contiene le suite di test.

reportPath

Il percorso della cartella che conterrà i risultati dei test dopo che IDT avrà eseguito una suite di test.

awsRegion

Facoltativo. La AWS regione che verranno utilizzate dalle suite di test. Se non è impostata, le suite di test utilizzeranno la regione predefinita specificata in ciascuna suite di test.

auth.method

Il metodo utilizzato da IDT per recuperare AWS le credenziali. I valori supportati sono file il recupero delle credenziali da un file di credenziali e il recupero delle credenziali utilizzando le variabili environment di ambiente.

auth.credentials.profile

Il profilo delle credenziali da utilizzare dal file delle credenziali. Questa proprietà si applica solo se auth.method è impostata su file.