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 IDT contexto
Quando IDT executa uma suíte de testes, a suíte de testes pode acessar um conjunto de dados que podem ser usados para determinar como cada teste é executado. Esses dados são chamados de IDT contexto. Por exemplo, a configuração de dados do usuário fornecida pelos executores de teste em um userdata.json
arquivo é disponibilizada para suítes de teste no IDT contexto.
O IDT contexto pode ser considerado um documento somente para leituraJSON. As suítes de teste podem recuperar e gravar dados no contexto usando tipos de JSON dados padrão, como objetos, matrizes, números e assim por diante.
Esquema de contexto
O IDT contexto usa o seguinte formato:
{ "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. Esse valor é especificado pelo executor de teste do IDTCLI. O valor padrão é
1
. config.idRootPath
-
Esse valor é um espaço reservado para o valor absoluto do caminho IDT durante a configuração do
userdata.json
arquivo. 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 IDT contexto 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 API comandos, você usa
ouquery
{{$.
, dependendo do comando. Para obter mais informações, consulte a documentação em linha noSDKs.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 para IDT é um objeto, você normalmente 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 JSON sintaxe padrão. -
value
é qualquer valor personalizado que usa a JSON sintaxe 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 suite.json
arquivos. IDTexecuta uma pesquisa de contexto e preenche os campos com o valor avaliado da consulta. Por exemplo, no suite.json
arquivo, você pode usar cadeias de caracteres de espaço reservado para especificar valores de variáveis de ambiente que mudam com cada caso de teste e IDT preencherão 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.
Devido a essas considerações, recomendamos que, sempre que possível, você use o API para acessar o contexto em sua lógica de teste em vez de cadeias de caracteres de espaço reservado em test.json
arquivos e arquivos. 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.