

Aviso de fim do suporte: em 7 de outubro de 2026, AWS o suporte para o. AWS IoT Greengrass Version 1 Depois de 7 de outubro de 2026, você não poderá mais acessar os AWS IoT Greengrass V1 recursos. Para obter mais informações, visite [Migrar de AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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
<a name="set-config-custom"></a>

Para executar conjuntos de testes personalizados, os executores de teste devem definir suas configurações com base no pacote de testes que desejam executar. As configurações são especificadas com base nos modelos de arquivo de configuração JSON localizados na pasta `<device-tester-extract-location>/configs/`. Se necessário, os executores de teste também devem configurar AWS as credenciais que a IDT usará para se conectar à nuvem. AWS 

Como escritor de teste, será necessário configurar esses arquivos para [depurar seu pacote de teste](run-tests-custom.md). É preciso fornecer instruções aos executores de teste para que eles possam definir as seguintes configurações conforme necessário para executar seus pacotes de testes. 

## Configurar device.json
<a name="device-config-custom"></a>

O arquivo `device.json` contém informações sobre os dispositivos em que 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 workload. 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.  
Se você quiser listar sua placa no Catálogo de AWS Partner dispositivos, o SKU especificado aqui deve corresponder ao SKU que você usa no processo de listagem.

`features`  
Opcional. Uma matriz que contém recursos compatíveis com o dispositivo. Os recursos do dispositivo são valores definidos pelo usuário que você configura em seu pacote de teste. É preciso fornecer informações aos executores de teste sobre os nomes e valores dos recursos a serem incluídos no arquivo `device.json`. Por exemplo, se você quiser testar um dispositivo que funciona como um servidor MQTT para outros dispositivos, você pode configurar sua lógica de teste para validar níveis específicos suportados para um recurso chamado `MQTT_QOS`. Os executores de teste fornecem esse nome de recurso e definem o valor do recurso para os níveis de QOS compatíveis com o dispositivo deles. É possível recuperar as informações fornecidas do [contexto do IDT](idt-context.md) com a consulta `devicePool.features` ou do [contexto da máquina de estado](idt-state-machine.md#state-machine-context) com a consulta `pool.features`.    
`features.name`  
O nome do recurso.  
`features.value`  
Os valores dos recursos compatíveis.  
`features.configs`  
Definições de configuração, se necessárias, para o recurso.    
`features.config.name`  
O nome do ajuste de configurações.  
`features.config.value`  
Os valores de configuração compatíveis.

`devices`  
Uma matriz de dispositivos no grupo a serem testados. Pelo menos um dispositivo é necessário.  <a name="device-array-fields"></a>  
`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` e `uart` para dispositivos físicos e `docker` para contêineres do Docker.  
`connectivity.ip`  
O endereço IP do dispositivo que está sendo testado.  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.  
`connectivity.port`  
Opcional. O número da porta usada nas conexões SSH.  
O valor padrão é 22.  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.  
`connectivity.auth`  
Informações de autenticação da conexão.  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.    
`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 como `password`.  
`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 como `pki`.  
`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 como `uart`.  
`connectivity.containerId`  
O ID do contêiner ou o nome do contêiner do Docker que está sendo testado.  
<a name="connectivity-protocol-docker-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `docker`.  
`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.  
<a name="connectivity-protocol-docker-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `docker`.
Para verificar se os executores de teste configuram a conexão incorreta do dispositivo para um teste, você pode recuperar o `pool.Devices[0].Connectivity.Protocol` do contexto da máquina de estado e compará-la com o valor esperado em um estado `Choice`. Se um protocolo incorreto for usado, imprima uma mensagem usando o estado `LogMessage` e faça a transição para o estado `Fail`.  
Como alternativa, é possível usar o código de tratamento de erros para relatar uma falha no teste para tipos de dispositivos incorretos.

## (Opcional) Configurar userdata.json
<a name="userdata-config-custom"></a>

O arquivo `userdata.json` contém qualquer informação adicional exigida por um pacote de teste, mas não está especificada no arquivo `device.json`. O formato deste arquivo depende do [arquivo `userdata_scheme.json`](idt-json-config.md#userdata-schema-json) definido no pacote de teste. Se for um redator de testes, certifique-se de fornecer essas informações aos usuários que executarão os pacotes de testes escritos.

## (Opcional) Configurar resource.json
<a name="resource-config-custom"></a>

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 dispositivos necessários para testar determinados recursos de um dispositivo em teste. Por exemplo, para testar a capacidade Bluetooth de um dispositivo, é possível usar um dispositivo de recurso para testar se seu dispositivo consegue se conectar com êxito. Os dispositivos de recursos são opcionais e pode exigir quantos dispositivos de recursos precisar. Como redator de teste, é possível usar o [arquivo test.json](idt-json-config.md#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 pool de dispositivos de recursos com os recursos necessários. Certifique-se de fornecer essas informações aos usuários que executarão os pacotes de testes escritos. 

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-value>",                
                "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 workload. Vários dispositivos são usados para executar testes diferentes.

`features`  
Opcional. Uma matriz que contém recursos compatíveis com o dispositivo. As informações necessárias neste campo são definidas nos [arquivos test.json](idt-json-config.md#test-json) no pacote de teste e determinam quais testes devem ser executados e como executá-los. Se o pacote de teste não exigir nenhum recurso, este campo não será obrigatório.    
`features.name`  
O nome do recurso.  
`features.version`  
A versão do recurso.  
`features.jobSlots`  
Configuração para indicar quantos testes podem usar o dispositivo simultaneamente. O valor padrão é `1`.

`devices`  <a name="device-array"></a>
Uma matriz de dispositivos no grupo a serem testados. Pelo menos um dispositivo é necessário.  <a name="device-array-fields"></a>  
`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` e `uart` para dispositivos físicos e `docker` para contêineres do Docker.  
`connectivity.ip`  
O endereço IP do dispositivo que está sendo testado.  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.  
`connectivity.port`  
Opcional. O número da porta usada nas conexões SSH.  
O valor padrão é 22.  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.  
`connectivity.auth`  
Informações de autenticação da conexão.  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.    
`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 como `password`.  
`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 como `pki`.  
`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 como `uart`.  
`connectivity.containerId`  
O ID do contêiner ou o nome do contêiner do Docker que está sendo testado.  
<a name="connectivity-protocol-docker-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `docker`.  
`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.  
<a name="connectivity-protocol-docker-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `docker`.

## (Opcional) Configurar config.json
<a name="config-json-custom"></a>

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 suas credenciais de AWS usuário para o IDT e, opcionalmente, para uma região. AWS Se AWS as credenciais com as permissões necessárias forem fornecidas, AWS IoT o Device Tester coleta e envia métricas de uso para o. AWS Esse atributo é opcional e usado para aprimorar a funcionalidade do IDT. Para obter mais informações, consulte [Métricas de uso do IDT](idt-usage-metrics.md).

Os executores de teste podem configurar suas AWS credenciais de uma das seguintes formas:
+ **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](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

  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 estão disponíveis após o encerramento da sessão. O IDT pode usar as variáveis de `AWS_SECRET_ACCESS_KEY` ambiente `AWS_ACCESS_KEY_ID` e para armazenar credenciais AWS 

  Para 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 AWS as credenciais para o IDT, os executores de teste editam a `auth` seção no `config.json` arquivo 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 no*<device-tester-extract-location>*.

`configFiles.root`  
O caminho para a pasta que contém os arquivos de configuração.

`configFiles.device`  
O caminho para a função `device.json`.

`testPath`  
O caminho para a pasta que contém pacotes de teste.

`reportPath`  
O caminho para a pasta que conterá os resultados do teste depois que o IDT executar um pacote de teste.

`awsRegion`  
Opcional. A AWS região que as suítes de teste usarão. Se não for definida, os pacotes de teste usarão a região padrão especificada em cada pacote de teste.

`auth.method`  
O método que o IDT usa para recuperar credenciais AWS . Os valores aceitos são `file` recuperar credenciais de um arquivo de credenciais e recuperar credenciais `environment` usando variáveis de ambiente.

`auth.credentials.profile`  
O perfil de credenciais a ser usado no arquivo de credenciais. Essa propriedade será aplicada somente se `auth.method` estiver definido como `file`.