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á.
Use o contexto do IDT
Quando o IDT executa um pacote de teste, o pacote de teste pode acessar um conjunto de dados que podem ser usados para determinar como cada teste é executado. Estes dados são chamados de contexto do IDT. Por exemplo, a configuração de dados do usuário fornecida pelos executores de teste em um arquivo userdata.json
é disponibilizada para pacotes de teste no contexto do IDT.
O contexto do IDT pode ser considerado um documento JSON somente para leitura. Os pacotes de teste podem recuperar e gravar dados no contexto usando tipos de dados JSON padrão, como objetos, matrizes, números e assim por diante.
Esquema de contexto
O contexto do IDT usa o formato a seguir:
{ "config": { <config-json-content> "timeoutMultiplier": timeout-multiplier, "idtRootPath": <path/to/IDT/root> }, "device": { <device-json-device-element> }, "devicePool": { <device-json-pool-element> }, "resource": { "devices": [ { <resource-json-device-element> "name": "<resource-name>" } ] }, "testData": { "awsCredentials": { "awsAccessKeyId": "<access-key-id>", "awsSecretAccessKey": "<secret-access-key>", "awsSessionToken": "<session-token>" }, "logFilePath": "/path/to/log/file" }, "userData": { <userdata-json-content> } }
config
-
As informações do arquivo config.json. O campo
config
também contém os seguintes campos adicionais:config.timeoutMultiplier
-
O multiplicador para qualquer valor de tempo limite usado pelo pacote de teste. Este valor é especificado pelo executor de teste da CLI do IDT. O valor padrão é
1
. config.idRootPath
-
Este valor é um espaço reservado para o valor absoluto do caminho do IDT durante a configuração do arquivo
userdata.json
. Isto é usado pelos comandos de compilação e atualização.
device
-
As informações sobre o dispositivo selecionado para a execução do teste. Estas informações são equivalentes à matriz
devices
definida no arquivo device.json do dispositivo selecionado. devicePool
-
Informações sobre o grupo de dispositivos selecionado para a execução do teste. Estas informações são equivalentes ao elemento de matriz do grupo de dispositivos de nível superior definido no arquivo
device.json
do grupo de dispositivos selecionado. resource
-
As informações sobre dispositivos de recursos do arquivo
resource.json
.resource.devices
-
Estas informações são equivalentes à matriz
devices
definida no arquivoresource.json
. Cada elementodevices
inclui o seguinte campo adicional:resource.device.name
-
O nome do dispositivo de recurso. Este valor é definido como o valor
requiredResource.name
no arquivotest.json
.
testData.awsCredentials
-
As AWS credenciais usadas pelo teste para se conectar à AWS nuvem. Estas informações são obtidas do arquivo
config.json
. testData.logFilePath
-
O caminho para o arquivo de log no qual o caso de teste grava mensagens de log. O pacote de teste criará este arquivo se ele não existir.
userData
-
As informações fornecidas pelo executor de teste no arquivo userdata.json.
Acesse dados no contexto
Você pode consultar o contexto usando a JSONPath notação dos seus arquivos de configuração e do seu executável de texto com e. GetContextValue
GetContextString
APIs A sintaxe JSONPath das cadeias de caracteres para acessar o contexto do IDT varia da seguinte forma:
-
Em
suite.json
etest.json
, é usado{{
. Ou seja, não use o elemento raizquery
}}$.
para iniciar sua expressão. -
Em
statemachine.json
, é usado{{$.
.query
}} -
Nos comandos da API, é usado
ouquery
{{$.
, dependendo do comando. Para obter mais informações, consulte a documentação em linha no SDKs.query
}}
A tabela a seguir descreve os operadores em uma expressão típica de foobar: JSONPath
Operador | Descrição |
---|---|
$ |
O elemento raiz. Como o valor de contexto de nível superior do IDT é um objeto, normalmente você usará $. para iniciar suas consultas. |
.childName |
Acessa o elemento filho com o nome childName de um objeto. Se aplicado a uma matriz, produz uma nova matriz com esse operador aplicado a cada elemento. O nome do elemento diferencia maiúsculas e minúsculas. Por exemplo, a consulta para acessar o valor awsRegion no objeto config é $.config.awsRegion . |
[start:end] |
Filtra elementos de uma matriz, recuperando itens que começam no índice start e vão até o índice end , ambos inclusive. |
[index1, index2, ... , indexN] |
Filtra elementos de uma matriz, recuperando itens somente dos índices especificados. |
[?(expr)] |
Filtra elementos de uma matriz usando a expressão expr . Esta expressão que deve ser avaliada para um valor booleano. |
Para criar expressões de filtro, use os seguintes elementos:
<jsonpath>
|<value>
operator
<jsonpath>
|<value>
Nesta sintaxe:
-
jsonpath
é um JSONPath que usa a sintaxe JSON padrão. -
value
é qualquer valor personalizado que usa a sintaxe JSON padrão. -
operator
é um dos seguintes operadores:-
<
(Menor que) -
<=
(Menor ou igual a) -
==
(Igual a)Se o valor JSONPath ou em sua expressão for um valor de matriz, booleano ou objeto, esse será o único operador binário compatível que você poderá usar.
-
>=
(Maior ou igual a) -
>
(Maior que) -
=~
(Correspondência de expressão regular). Para usar esse operador em uma expressão de filtro, o valor JSONPath ou no lado esquerdo da expressão deve ser avaliado como uma string e o lado direito deve ser um valor padrão que siga a RE2sintaxe.
-
Você pode usar JSONPath consultas no formato {{query
}} como cadeias de caracteres de espaço reservado environmentVariables
nos campos args
e nos test.json
arquivos e nos environmentVariables
campos nos arquivos. suite.json
O IDT realiza uma pesquisa de contexto e preenche os campos com o valor avaliado da consulta. Por exemplo, no arquivo suite.json
, é possível usar strings de espaço reservado para especificar valores de variáveis de ambiente que mudam com cada caso de teste e o IDT preencherá as variáveis de ambiente com o valor correto para cada caso de teste. No entanto, ao usar strings de caracteres de espaço reservado em arquivos test.json
e suite.json
, as seguintes considerações se aplicam às suas consultas:
-
Cada ocorrência da chave
devicePool
em sua consulta deve estar em letras minúsculas. Ou seja, em vez disso, usedevicepool
. -
Para as matrizes, somente matrizes de strings podem ser usadas. Além disso, as matrizes usam um formato
item1, item2,...,itemN
não padrão. Se a matriz contiver somente um elemento, ela será serializada comoitem
, tornando-a indistinguível de um campo de strings. -
Não é possível usar espaços reservados para recuperar objetos do contexto.
Por conta dessas considerações, é recomendado, sempre que possível, usar a API para acessar o contexto em sua lógica de teste em vez de strings de espaço reservado em arquivos test.json
e suite.json
. No entanto, em alguns casos, pode ser mais conveniente usar JSONPath espaços reservados para recuperar cadeias de caracteres únicas para definir como variáveis de ambiente.