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à.
Configura 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
cartella. Se necessario, i test runner devono anche impostare AWS le credenziali da utilizzare per connettersi al AWS cloud. IDT <device-tester-extract-location>
/configs/
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). CPU
I test runner possono fornire queste informazioni utilizzando il seguente device.json
file modello che si trova nella
cartella.<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>
", "pairedResource": "<device-id>
", //used for no-op protocol "connectivity": { "protocol": "ssh | uart | docker | no-op", // ssh "ip": "<ip-address>
", "port":<port-number>
, "publicKeyPath": "<public-key-path>
", "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. SKUViene utilizzato per tracciare i dispositivi qualificati.
Nota
Se desideri inserire la tua scheda nel AWS Partner Device Catalog, la scheda che SKU hai specificato qui deve corrispondere a SKU quella che utilizzi nel processo di pubblicazione degli annunci.
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 desideri testare un dispositivo che funge da MQTT server per altri dispositivi, puoi 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 IDTcontesto con ladevicePool.features
query o dal contesto della macchina a stati 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.
devices.pairedResource
-
Un identificatore univoco definito dall'utente per un dispositivo di risorse. Questo valore è necessario quando si testano i dispositivi utilizzando il protocollo di
no-op
connettività. 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
euart
per i dispositivi fisici,docker
per i contenitori Docker eno-op
per i dispositivi che non dispongono di una connessione diretta con la macchina IDT host ma richiedono un dispositivo di risorse come middleware fisico per comunicare con la macchina host.Per i dispositivi non operativi, si configura l'ID del dispositivo di risorsa in.
devices.pairedResource
È inoltre necessario specificare questo ID nelresource.json
file. Il dispositivo associato deve essere un dispositivo fisicamente associato al dispositivo in prova. Dopo aver IDT identificato e connesso il dispositivo di risorse associato, non si IDT connetterà ad altri dispositivi di risorse in base alle funzionalità descritte nel file.test.json
connectivity.ip
-
L'indirizzo IP del dispositivo sottoposto a test.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sussh
. connectivity.port
-
Facoltativo. Il numero di porta da utilizzare per SSH le connessioni.
Il valore predefinito è 22.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sussh
. connectivity.publicKeyPath
-
Facoltativo. Il percorso completo della chiave pubblica utilizzata per autenticare le connessioni al dispositivo in esame. Quando si specifica il
publicKeyPath
, IDT convalida la chiave pubblica del dispositivo quando stabilisce una SSH connessione al dispositivo in prova. Se questo valore non è specificato, IDT crea una SSH connessione, ma non convalida la chiave pubblica del dispositivo.Ti consigliamo vivamente di specificare il percorso della chiave pubblica e di utilizzare un metodo sicuro per recuperare questa chiave pubblica. Per i SSH client standard basati sulla riga di comando, la chiave pubblica viene fornita nel file.
known_hosts
Se si specifica un file con chiave pubblica separato, questo file deve utilizzare lo stesso formato delknown_hosts
file, ovvero.ip-address key-type public-key
connectivity.auth
-
Informazioni di autenticazione per la connessione.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sussh
.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 supassword
. 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 supki
. 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 suuart
. connectivity.containerId
-
L'ID contenitore o il nome del contenitore Docker in fase di test.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sudocker
. 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 sudocker
.
Nota
Per verificare se i test runner configurano la connessione errata del dispositivo per un test, è possibile recuperarlo
pool.Devices[0].Connectivity.Protocol
dal contesto della macchina a stati e confrontarlo con il valore previsto in unoChoice
stato. Se viene utilizzato un protocollo errato, stampa un messaggio utilizzando loLogMessage
stato e passa alloFail
stato.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 sono 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. 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
cartella.<device-tester-extract-location>
/configs/
[ { "id": "
<pool-id>
", "features": [ { "name": "<feature-name>
", "version": "<feature-value>
", "jobSlots":<job-slots>
} ], "devices": [ { "id": "<device-id>
", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>
", "port":<port-number>
, "publicKeyPath": "<public-key-path>
", "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
euart
per i dispositivi fisici edocker
per i contenitori Docker. connectivity.ip
-
L'indirizzo IP del dispositivo sottoposto a test.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sussh
. connectivity.port
-
Facoltativo. Il numero di porta da utilizzare per le SSH connessioni.
Il valore predefinito è 22.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sussh
. connectivity.publicKeyPath
-
Facoltativo. Il percorso completo della chiave pubblica utilizzata per autenticare le connessioni al dispositivo in esame. Quando si specifica il
publicKeyPath
, IDT convalida la chiave pubblica del dispositivo quando stabilisce una SSH connessione al dispositivo in prova. Se questo valore non è specificato, IDT crea una SSH connessione, ma non convalida la chiave pubblica del dispositivo.Ti consigliamo vivamente di specificare il percorso della chiave pubblica e di utilizzare un metodo sicuro per recuperare questa chiave pubblica. Per i SSH client standard basati sulla riga di comando, la chiave pubblica viene fornita nel file.
known_hosts
Se si specifica un file con chiave pubblica separato, questo file deve utilizzare lo stesso formato delknown_hosts
file, ovvero.ip-address key-type public-key
connectivity.auth
-
Informazioni di autenticazione per la connessione.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sussh
.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 supassword
. 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 supki
. 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 suuart
. connectivity.containerId
-
L'ID contenitore o il nome del contenitore Docker in fase di test.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sudocker
. 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 sudocker
.
(Facoltativo) Configura config.json
Il config.json
file contiene informazioni di configurazione perIDT. In genere, i test runner non avranno bisogno di modificare questo file se non per fornire le proprie credenziali AWS utente perIDT, 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 Questa è una funzionalità opzionale e viene utilizzata per migliorare la funzionalità. IDT Per ulteriori informazioni, consulta Invia le metriche IDT di utilizzo.
I test runner possono configurare le proprie AWS credenziali in uno dei seguenti modi:
-
File di credenziali
IDTutilizza lo stesso file di credenziali del. 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 SSH sessione non sono disponibili dopo la chiusura della sessione. IDTpuò utilizzare le variabili di
AWS_SECRET_ACCESS_KEY
ambienteAWS_ACCESS_KEY_ID
e per memorizzare le AWS credenzialiPer 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 diIDT, 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 dei registri in
<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 l'IDTesecuzione di 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 IDT utilizza per recuperare le AWS credenziali. I valori supportati sono
file
il recupero delle credenziali da un file di credenziali e il recupero delle credenziali utilizzando le variabilienvironment
di ambiente. auth.credentials.profile
-
Il profilo delle credenziali da utilizzare dal file delle credenziali. Questa proprietà si applica solo se
auth.method
è impostata sufile
.