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á.
Configurar o IDT orquestrador de teste
A partir da IDT v4.5.2, IDT inclui um novo componente orquestrador de testes. O orquestrador de testes é um IDT componente que controla o fluxo de execução da suíte de testes e gera o relatório de teste após IDT concluir a execução de todos os testes. O orquestrador de testes determina a seleção do teste e a ordem na qual os testes são executados com base nas regras definidas pelo usuário.
Se sua suíte de testes não incluir um orquestrador de testes definido pelo usuário, IDT gerará um orquestrador de testes para você.
O orquestrador de teste padrão executa as seguintes funções:
-
Fornece aos executores de teste a capacidade de selecionar e executar grupos de testes específicos, em vez de todo o pacote de teste.
-
Se grupos de teste específicos não forem selecionados, executará cada grupo de teste no pacote de teste em uma ordem aleatória.
-
Gera relatórios e imprime um resumo do console que mostra os resultados do teste para cada grupo de teste e caso de teste.
O orquestrador de teste substitui a máquina de estado. IDT É altamente recomendável que você use o orquestrador de testes para desenvolver suas suítes de testes em vez da máquina de IDT estado. O orquestrador de testes fornece os seguintes recursos aprimorados:
-
Usa um formato declarativo em comparação com o formato imperativo usado pela máquina de IDT estado. Isto permite que especificar quais testes deseja executar e quando deseja executá-los.
-
Gerencia o tratamento de grupos específicos, a geração de relatórios, o tratamento de erros e o rastreamento de resultados para que você não precise gerenciar manualmente essas ações.
-
Usa o YAML formato, que suporta comentários por padrão.
-
Requer 80% menos espaço em disco do que o orquestrador de teste para definir o mesmo fluxo de trabalho.
-
Adiciona validação de pré-teste para verificar se a definição do fluxo de trabalho não contém dependências circulares IDs ou de teste incorretas.
Formato do orquestrador de testes
É possível usar o modelo a seguir para configurar seu próprio arquivo
: custom-test-suite-folder
/suite/test_orchestrator.yaml
Aliases:
string
:context-expression
ConditionalTests: - Condition:context-expression
Tests: -test-descriptor
Order: - -group-descriptor
-group-descriptor
Features: - Name:feature-name
Value:support-description
Condition:context-expression
Tests: -test-descriptor
OneOfTests: -test-descriptor
IsRequired:boolean
Todos os campos que contêm valores são necessários, conforme descrito aqui:
Aliases
-
Opcional. Strings definidas pelo usuário que são mapeadas para expressões de contexto. Os aliases permitem que você gere nomes amigáveis para identificar expressões de contexto na configuração do orquestrador de teste. Isto é muito útil se estiver criando expressões de contexto complexas ou expressões usadas em vários lugares.
Você pode usar expressões de contexto para armazenar consultas de contexto que permitem acessar dados de outras IDT configurações. Para obter mais informações, consulte Acesse dados no contexto.
Exemplo
Aliases: FizzChosen: "'{{$pool.features[?(@.name == 'Fizz')].value[0]}}' == 'yes'" BuzzChosen: "'{{$pool.features[?(@.name == 'Buzz')].value[0]}}' == 'yes'" FizzBuzzChosen: "'{{$aliases.FizzChosen}}' && '{{$aliases.BuzzChosen}}'"
ConditionalTests
-
Opcional. Uma lista de condições e os casos de teste correspondentes que são executados quando cada condição é atendida. Cada condição pode ter vários casos de teste. No entanto, só é possível atribuir um determinado caso de teste a uma condição.
Por padrão, IDT executa qualquer caso de teste que não esteja atribuído a uma condição nessa lista. Se você não especificar essa seção, IDT executará todos os grupos de teste na suíte de testes.
Cada item da lista
ConditionalTests
inclui os seguintes parâmetros:Condition
-
Uma expressão de contexto que deve ser avaliada para um valor booleano. Se o valor avaliado for verdadeiro, IDT executa os casos de teste especificados no
Tests
parâmetro. Tests
-
A lista dos descritores de teste.
Cada descritor de teste usa o ID do grupo de teste e um ou mais casos de teste IDs para identificar os testes individuais a serem executados a partir de um grupo de teste específico. O descritor de teste usa o seguinte formato:
GroupId:
group-id
CaseIds: [test-id
,test-id
] # optional
Exemplo
O exemplo a seguir usa expressões de contexto genéricas que podem ser definidas como
Aliases
.ConditionalTests: - Condition: "{{$aliases.Condition1}}" Tests: - GroupId: A - GroupId: B - Condition: "{{$aliases.Condition2}}" Tests: - GroupId: D - Condition: "{{$aliases.Condition1}} || {{$aliases.Condition2}}" Tests: - GroupId: C
Com base nas condições definidas, IDT seleciona os grupos de teste da seguinte forma:
-
Se
Condition1
for verdade, IDT executa os testes nos grupos de teste A, B e C. -
Se
Condition2
for verdade, IDT executa os testes nos grupos de teste C e D.
Order
-
Opcional. A ordem em que os testes serão executados. Especifique a ordem do teste no nível do grupo de teste. Se você não especificar essa seção, IDT executará todos os grupos de teste aplicáveis em uma ordem aleatória. O valor de
Order
é uma lista de listas de descritores de grupos. Qualquer grupo de teste que não esteja listado emOrder
pode ser executado em paralelo com qualquer outro grupo de teste listado.Cada lista de descritores de grupo contém um ou mais descritores de grupo e identifica a ordem na qual executar os grupos especificados em cada descritor. É possível usar os seguintes formatos para definir descritores de grupo individuais:
-
: o ID do grupo de um grupo de teste existente.group-id
-
[
: lista de grupos de teste que podem ser executados em qualquer ordem em relação um ao outro.group-id
,group-id
] -
"*"
: curinga. Isto é equivalente à lista de todos os grupos de teste que ainda não estão especificados na lista atual de descritores de grupo.
O valor de
Order
também devem atender aos seguintes requisitos:-
O grupo de teste IDs que você especifica em um descritor de grupo deve existir em sua suíte de testes.
-
Cada lista de descritores de grupo deve incluir pelo menos um grupo de teste.
-
Cada lista de descritores de grupo deve conter um grupo IDs exclusivo. Não é possível repetir um ID de grupo de teste em descritores de grupos individuais.
-
Uma lista de descritores de grupo pode ter no máximo um descritor de grupo curinga. O descritor do grupo curinga deve ser o primeiro ou o último item na lista.
Exemplo
Para uma suíte de testes que contém os grupos de teste A, B, C, D e E, a lista de exemplos a seguir mostra maneiras diferentes de especificar que IDT devem primeiro executar o grupo de teste A, depois executar o grupo de teste B e, em seguida, executar os grupos de teste C, D e E em qualquer ordem.
-
Order: - - A - B - [C, D, E]
-
Order: - - A - B - "*"
-
Order: - - A - B - - B - C - - B - D - - B - E
-
Features
-
Opcional. A lista de recursos do produto que você IDT deseja adicionar ao
awsiotdevicetester_report.xml
arquivo. Se você não especificar essa seção, IDT não adicionará nenhum recurso do produto ao relatório.Um recurso do produto é uma informação definida pelo usuário sobre critérios específicos que um dispositivo pode atender. Por exemplo, o recurso MQTT do produto pode indicar que o dispositivo publica MQTT mensagens corretamente. Em
awsiotdevicetester_report.xml
, os recursos do produto são definidos comosupported
,not-supported
ou um valor personalizado e definido pelo usuário, com base na aprovação dos testes especificados.Cada item da lista
Features
consiste dos seguintes parâmetros:Name
-
O nome do recurso.
Value
-
Opcional. O valor personalizado que deseja usar no relatório em vez de
supported
. Se esse valor não for especificado, então based IDT define o valor do recurso comosupported
ounot-supported
com base nos resultados do teste. Se você testar o mesmo recurso com condições diferentes, poderá usar um valor personalizado para cada instância desse recurso naFeatures
lista e IDT concatenar os valores do recurso para as condições suportadas. Para obter mais informações, consulte Condition
-
Uma expressão de contexto que deve ser avaliada para um valor booleano. Se o valor avaliado for verdadeiro, IDT adiciona o recurso ao relatório de teste após concluir a execução da suíte de testes. Se o valor avaliado for falso, o teste não será incluído no relatório.
Tests
-
Opcional. A lista dos descritores de teste. Todos os testes que são especificados nesta lista devem ser aprovados para que o recurso seja compatível.
Cada descritor de teste nesta lista usa o ID do grupo de teste e um ou mais casos de teste IDs para identificar os testes individuais a serem executados em um grupo de teste específico. O descritor de teste usa o seguinte formato:
GroupId:
group-id
CaseIds: [test-id
,test-id
] # optionalVocê deve especificar um
Tests
ouOneOfTests
para cada recurso na listaFeatures
. OneOfTests
-
Opcional. A lista dos descritores de teste. Pelo menos um dos testes especificados nesta lista deve ser aprovado para que o recurso seja compatível.
Cada descritor de teste nesta lista usa o ID do grupo de teste e um ou mais casos de teste IDs para identificar os testes individuais a serem executados em um grupo de teste específico. O descritor de teste usa o seguinte formato:
GroupId:
group-id
CaseIds: [test-id
,test-id
] # optionalVocê deve especificar um
Tests
ouOneOfTests
para cada recurso na listaFeatures
. IsRequired
-
O valor booleano que define se o recurso é exigido no relatório de teste. O valor padrão é
false
.
Contexto do orquestrador de teste
O contexto do orquestrador de teste é um JSON documento somente para leitura que contém dados que estão disponíveis para o orquestrador de teste durante a execução. O contexto do orquestrador de estado é acessível somente do orquestrador de estado e contém informações que determinam o fluxo de teste. Por exemplo, você pode usar as informações configuradas pelos executores de teste no arquivo userdata.json
para determinar se é necessário executar um teste específico.
O contexto do orquestrador de teste usa o seguinte formato:
{ "pool": {
<device-json-pool-element>
}, "userData": {<userdata-json-content>
}, "config": {<config-json-content>
} }
pool
-
Informações sobre o grupo de dispositivos selecionado para a execução do teste. Para um grupo de dispositivos selecionado, essas informações são recuperadas do elemento correspondente da matriz do grupo de dispositivos de nível superior definido no arquivo
device.json
. userData
-
As informações no arquivo
userdata.json
. config
-
As informações no arquivo
config.json
.
Você pode consultar o contexto usando a JSONPath notação. A sintaxe para JSONPath consultas em definições de estado é. {{
Ao acessar dados do contexto do orquestrador de testes, verifique que cada valor seja avaliado como uma string, um número ou um booleano.query
}}
Para obter mais informações sobre o uso JSONPath da notação para acessar dados do contexto, consulteUse o IDT contexto.