As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Definir configurações para executores de teste
Para executar pacotes de testes personalizados, os executores de teste devem definir suas configurações com base no pacote de teste que desejam executar. As configurações são especificadas com base nos modelos de arquivo de configuração localizados na pasta
. Se necessário, os executores de teste também devem configurar as credenciais da AWS que a IDT usará para se conectar à nuvem da AWS. <device-tester-extract-location>
/configs/
Como autor de testes, você precisará configurar esses arquivos para depurar o conjunto de testes. Você deve fornecer instruções aos executores de teste para que eles possam definir as seguintes configurações conforme necessário para executar os conjuntos de testes.
Configurar device.json
O arquivo device.json
contém informações sobre os dispositivos nos quais os testes são executados (por exemplo, endereço IP, informações de login, sistema operacional e arquitetura de CPU).
Os executores de teste podem fornecer essas informações usando o seguinte arquivo device.json
de modelo localizado na pasta
.<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>
", } } ] } ]
Todos os campos que contêm valores são necessários, conforme descrito aqui:
id
-
Um ID alfanumérico definido pelo usuário que identifica uma coleção de dispositivos chamada de grupo de dispositivos. Os dispositivos que pertencem a um grupo devem ter hardware idêntico. Quando um conjunto de testes é executado, os dispositivos do grupo são usados para paralelizar a carga de trabalho. Vários dispositivos são usados para executar testes diferentes.
sku
-
Um valor alfanumérico que identifica exclusivamente o dispositivo em teste. A SKU é usada para rastrear os dispositivos qualificados.
nota
Se você deseja listar sua placa no AWS Partner Device Catalog, a SKU especificada aqui deve corresponder à SKU que você usa no processo de oferta.
features
-
Opcional. Uma matriz que contém atributos compatíveis com o dispositivo. Os atributos do dispositivo são valores definidos pelo usuário que você configura no conjunto de testes. Você deve fornecer aos executores de teste informações sobre os nomes e valores dos atributos a serem incluídos no arquivo
device.json
. Por exemplo, se desejar testar um dispositivo que funciona como um servidor MQTT em outros dispositivos, você poderá configurar a lógica de teste para validar níveis compatíveis específicos de um atributo chamadoMQTT_QOS
. Os executores de teste fornecem esse nome de atributo e definem o valor do atributo para os níveis de QOS compatíveis com o dispositivo deles. Você pode recuperar as informações fornecidas do contexto do IDT com a devicePool.features consulta ou do contexto do orquestrador de teste com a consulta.pool.features
features.name
-
O nome do atributo.
features.value
-
Os valores dos atributos compatíveis.
features.configs
-
Definições de configuração, se necessárias, para o atributo.
features.config.name
-
O nome da definição de configuração.
features.config.value
-
Os valores de configuração compatível.
devices
-
Uma matriz de dispositivos no grupo a ser testado. Pelo menos um dispositivo é necessário.
devices.id
-
Um identificador exclusivo, definido pelo usuário, para o dispositivo que está sendo testado.
connectivity.protocol
-
O protocolo de comunicação usado para se comunicar com esse dispositivo. Cada dispositivo em um grupo deve usar o mesmo protocolo.
No momento, os únicos valores compatíveis são
ssh
euart
para dispositivos físicos edocker
para contêineres do Docker. connectivity.ip
-
O endereço IP do dispositivo que está sendo testado.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
. connectivity.port
-
Opcional. O número da porta a ser usado para conexões SSH.
O valor padrão é 22.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
. connectivity.auth
-
Informações de autenticação da conexão.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
.connectivity.auth.method
-
O método de autenticação usado para acessar um dispositivo pelo protocolo de conectividade indicado.
Os valores compatíveis são:
-
pki
-
password
-
connectivity.auth.credentials
-
As credenciais usadas para autenticação.
connectivity.auth.credentials.password
-
A senha usada para fazer login no dispositivo que está sendo testado.
Esse valor se aplica somente se
connectivity.auth.method
estiver definido comopassword
. connectivity.auth.credentials.privKeyPath
-
O caminho completo para a chave privada usada para fazer login no dispositivo que está sendo testado.
Esse valor se aplica somente se
connectivity.auth.method
estiver definido comopki
. connectivity.auth.credentials.user
-
O nome de usuário para fazer login no dispositivo que está sendo testado.
connectivity.serialPort
-
Opcional. A porta serial à qual o dispositivo está conectado.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comouart
. connectivity.containerId
-
O ID do contêiner ou o nome do contêiner do Docker que está sendo testado.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
. connectivity.containerUser
-
Opcional. O nome de usuário para o usuário dentro do contêiner. O valor padrão é o usuário fornecido no Dockerfile.
O valor padrão é 22.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
.
nota
Para verificar se os executores de teste configuram a conexão incorreta do dispositivo para um teste, você pode recuperá-la do contexto
pool.Devices[0].Connectivity.Protocol
do orquestrador de testes e compará-la com o valor esperado em um estado.Choice
Se um protocolo incorreto for usado, exiba uma mensagem usando o estadoLogMessage
e faça a transição para o estadoFail
.Opcionalmente, você pode usar o código de tratamento de erros para relatar uma falha no teste de tipos de dispositivos incorretos.
(Opcional) Configuração de userdata.json
O arquivo userdata.json
contém toda as informações adicionais exigidas por um conjunto de testes, mas não estão especificadas no arquivo device.json
. O formato desse arquivo depende do arquivo userdata_scheme.json definido no conjunto de testes. Se você é um autor de testes, forneça essas informações aos usuários que executarão os conjuntos de testes que você escreveu.
(Opcional) Configurar resource.json
O arquivo resource.json
contém informações sobre todos os dispositivos que serão usados como dispositivos de recursos. Os dispositivos de recursos são necessários para testar determinados recursos de um dispositivo em teste. Por exemplo, para testar a capacidade Bluetooth de um dispositivo, você pode usar um dispositivo de recurso para testar se seu dispositivo consegue se conectar com êxito. Os dispositivos de recursos são opcionais e você pode exigir quantos dispositivos de recursos forem necessários. Como autor de testes, você usa o arquivo test.json para definir os recursos do dispositivo de recursos necessários para um teste. Em seguida, os executores de teste usam o arquivo resource.json
para fornecer um grupo de dispositivos de recursos com os recursos necessários. Forneça essas informações aos usuários que executarão os conjuntos de teste que você escreve.
Os executores de teste podem fornecer essas informações usando o seguinte arquivo resource.json
de modelo localizado na pasta
.<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>
", } } ] } ]
Todos os campos que contêm valores são necessários, conforme descrito aqui:
id
-
Um ID alfanumérico definido pelo usuário que identifica uma coleção de dispositivos chamada de grupo de dispositivos. Os dispositivos que pertencem a um grupo devem ter hardware idêntico. Quando um conjunto de testes é executado, os dispositivos do grupo são usados para paralelizar a carga de trabalho. Vários dispositivos são usados para executar testes diferentes.
features
-
Opcional. Uma matriz que contém atributos compatíveis com o dispositivo. As informações necessárias nesse campo são definidas nos arquivos test.json no conjunto de testes e determinam quais testes devem ser executados e como executá-los. Se o conjunto de testes não exigir nenhum atributo, esse campo não será obrigatório.
features.name
-
O nome do atributo.
features.version
-
A versão do atributo.
features.jobSlots
-
Configuração para indicar quantos testes podem usar o dispositivo simultaneamente. O valor padrão é
1
.
devices
-
Uma matriz de dispositivos no grupo a ser testado. Pelo menos um dispositivo é necessário.
devices.id
-
Um identificador exclusivo, definido pelo usuário, para o dispositivo que está sendo testado.
connectivity.protocol
-
O protocolo de comunicação usado para se comunicar com esse dispositivo. Cada dispositivo em um grupo deve usar o mesmo protocolo.
No momento, os únicos valores compatíveis são
ssh
euart
para dispositivos físicos edocker
para contêineres do Docker. connectivity.ip
-
O endereço IP do dispositivo que está sendo testado.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
. connectivity.port
-
Opcional. O número da porta a ser usado para conexões SSH.
O valor padrão é 22.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
. connectivity.auth
-
Informações de autenticação da conexão.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
.connectivity.auth.method
-
O método de autenticação usado para acessar um dispositivo pelo protocolo de conectividade indicado.
Os valores compatíveis são:
-
pki
-
password
-
connectivity.auth.credentials
-
As credenciais usadas para autenticação.
connectivity.auth.credentials.password
-
A senha usada para fazer login no dispositivo que está sendo testado.
Esse valor se aplica somente se
connectivity.auth.method
estiver definido comopassword
. connectivity.auth.credentials.privKeyPath
-
O caminho completo para a chave privada usada para fazer login no dispositivo que está sendo testado.
Esse valor se aplica somente se
connectivity.auth.method
estiver definido comopki
. connectivity.auth.credentials.user
-
O nome de usuário para fazer login no dispositivo que está sendo testado.
connectivity.serialPort
-
Opcional. A porta serial à qual o dispositivo está conectado.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comouart
. connectivity.containerId
-
O ID do contêiner ou o nome do contêiner do Docker que está sendo testado.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
. connectivity.containerUser
-
Opcional. O nome de usuário para o usuário dentro do contêiner. O valor padrão é o usuário fornecido no Dockerfile.
O valor padrão é 22.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
.
(Opcional) Configuração de config.json
O arquivo config.json
contém as informações de configuração do IDT. Normalmente, os executores de teste não precisarão modificar esse arquivo, exceto para fornecer as credenciais de usuário da AWS para o IDT e, opcionalmente, para uma região AWS. Se as credenciais da AWS com as permissões necessárias forem fornecidas, o AWS IoT Device Tester coletará e enviará as métricas de uso para a AWS. Esse é um atributo opcional usado para melhorar a funcionalidade do IDT. Para ter mais informações, consulte Métricas de uso do IDT.
Os executores de teste podem configurar as credenciais da AWS de uma das seguintes maneiras:
-
Arquivo de credenciais
O IDT usa o mesmo arquivo de credenciais que a AWS CLI. Para obter mais informações, consulte Arquivos de configuração e credenciais.
O local do arquivo de credenciais varia de acordo com o sistema operacional que você está usando:
-
macOS, Linux:
~/.aws/credentials
-
Windows:
C:\Users\
UserName
\.aws\credentials
-
-
Variáveis de ambiente
As variáveis de ambiente são variáveis mantidas pelo sistema operacional e usadas pelos comandos do sistema. As variáveis definidas durante uma sessão SSH não ficam disponíveis após o encerramento da sessão. O IDT pode usar as variáveis de ambiente
AWS_ACCESS_KEY_ID
eAWS_SECRET_ACCESS_KEY
para armazenar as credenciais da AWSPara definir essas variáveis no Linux, macOS ou Unix, use :export
export AWS_ACCESS_KEY_ID=
<your_access_key_id>
export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
Para definir essas variáveis no Windows, use :set
set AWS_ACCESS_KEY_ID=
<your_access_key_id>
set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
Para configurar as credenciais da AWS para o IDT, os executores de teste editam a seção auth
no arquivo config.json
localizado na pasta
.<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>
" } } } ]
Todos os campos que contêm valores são necessários, conforme descrito aqui:
nota
Todos os caminhos nesse arquivo são definidos em relação ao < device-tester-extract-location >
.
log.location
-
O caminho para a pasta de registros em
< device-tester-extract-location >
. configFiles.root
-
O caminho para o arquivo que contém os arquivos de configuração.
configFiles.device
-
O caminho para o arquivo
device.json
. testPath
-
O caminho para a pasta que contém os conjuntos de teste.
reportPath
-
O caminho para a pasta que conterá os resultados do teste depois que o IDT executar um conjunto de testes.
awsRegion
-
Opcional. A região da AWS que será usada pelos conjuntos de teste. Se não for definida, os conjuntos de teste usarão a região padrão especificada em cada conjunto de testes.
auth.method
-
O método que o IDT usa para recuperar as credenciais da AWS. Os valores compatíveis são
file
para recuperar credenciais de um arquivo de credenciais eenvironment
para recuperar credenciais usando variáveis de ambiente. auth.credentials.profile
-
O perfil de credenciais a ser usado do arquivo de credenciais. Essa propriedade será aplicada somente se
auth.method
estiver definido comofile
.