Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configura l'orchestrator di test IDT
A partire dalla IDT versione 4.5.2, IDT include un nuovo componente di test orchestrator. Il test orchestrator è un IDT componente che controlla il flusso di esecuzione della suite di test e genera il rapporto di test al termine dell'esecuzione di tutti i test. IDT Il test orchestrator determina la selezione dei test e l'ordine in cui i test vengono eseguiti in base a regole definite dall'utente.
Se la tua suite di test non include un orchestratore di test definito dall'utente, IDT genererà un orchestrator di test per te.
L'orchestrator di test predefinito svolge le seguenti funzioni:
-
Fornisce ai test runner la possibilità di selezionare ed eseguire gruppi di test specifici, anziché l'intera suite di test.
-
Se non sono selezionati gruppi di test specifici, esegue ogni gruppo di test nella suite di test in ordine casuale.
-
Genera report e stampa un riepilogo della console che mostra i risultati dei test per ogni gruppo di test e test case.
Il test orchestrator sostituisce la macchina a stati. IDT Ti consigliamo vivamente di utilizzare il test orchestrator per sviluppare le tue suite di test anziché la macchina a stati. IDT Il test orchestrator offre le seguenti funzionalità migliorate:
-
Utilizza un formato dichiarativo rispetto al formato imperativo utilizzato dalla macchina a stati. IDT Ciò consente di specificare quali test eseguire e quando eseguirli.
-
Gestisce la gestione di gruppi specifici, la generazione di report, la gestione degli errori e il tracciamento dei risultati in modo da non dover gestire manualmente queste azioni.
-
Utilizza il YAML formato, che supporta i commenti per impostazione predefinita.
-
Richiede l'80% di spazio su disco in meno rispetto al test orchestrator per definire lo stesso flusso di lavoro.
-
Aggiunge la convalida preliminare al test per verificare che la definizione del flusso di lavoro non contenga test errati o dipendenze circolari. IDs
Formato dell'orchestratore di test
È possibile utilizzare il seguente modello per configurare il proprio file: 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
Tutti i campi che includono valori sono obbligatori, come descritto di seguito:
Aliases
-
Facoltativo. Stringhe definite dall'utente che mappano alle espressioni di contesto. Gli alias consentono di generare nomi descrittivi per identificare le espressioni di contesto nella configurazione del test orchestrator. Ciò è particolarmente utile se state creando espressioni di contesto complesse o espressioni da utilizzare in più posizioni.
È possibile utilizzare le espressioni di contesto per archiviare query di contesto che consentono di accedere ai dati da altre IDT configurazioni. Per ulteriori informazioni, consulta Accedere ai dati nel contesto.
Esempio
Aliases: FizzChosen: "'{{$pool.features[?(@.name == 'Fizz')].value[0]}}' == 'yes'" BuzzChosen: "'{{$pool.features[?(@.name == 'Buzz')].value[0]}}' == 'yes'" FizzBuzzChosen: "'{{$aliases.FizzChosen}}' && '{{$aliases.BuzzChosen}}'"
ConditionalTests
-
Facoltativo. Un elenco di condizioni e i casi di test corrispondenti che vengono eseguiti quando ogni condizione è soddisfatta. Ogni condizione può avere più casi di test; tuttavia, è possibile assegnare un determinato test case a una sola condizione.
Per impostazione predefinita, IDT esegue qualsiasi test case che non è assegnato a una condizione in questo elenco. Se non specifichi questa sezione, IDT esegue tutti i gruppi di test nella suite di test.
Ogni elemento dell'
ConditionalTests
elenco include i seguenti parametri:Condition
-
Un'espressione di contesto che restituisce un valore booleano. Se il valore valutato è vero, IDT esegue i test case specificati nel parametro.
Tests
Tests
-
L'elenco dei descrittori di test.
Ogni descrittore di test utilizza l'ID del gruppo di test e uno o più casi di test IDs per identificare i singoli test da eseguire da un gruppo di test specifico. Il descrittore di test utilizza il seguente formato:
GroupId:
group-id
CaseIds: [test-id
,test-id
] # optional
Esempio
L'esempio seguente utilizza espressioni di contesto generiche che è possibile definire come
Aliases
.ConditionalTests: - Condition: "{{$aliases.Condition1}}" Tests: - GroupId: A - GroupId: B - Condition: "{{$aliases.Condition2}}" Tests: - GroupId: D - Condition: "{{$aliases.Condition1}} || {{$aliases.Condition2}}" Tests: - GroupId: C
In base alle condizioni definite, IDT seleziona i gruppi di test come segue:
-
Se
Condition1
è vero, IDT esegue i test nei gruppi di test A, B e C. -
Se
Condition2
è vero, IDT esegue i test nei gruppi di test C e D.
Order
-
Facoltativo. L'ordine in cui eseguire i test. L'ordine dei test viene specificato a livello di gruppo di test. Se non specificate questa sezione, IDT esegue tutti i gruppi di test applicabili in ordine casuale. Il valore di
Order
è un elenco di elenchi di descrittori di gruppo. Qualsiasi gruppo di test inOrder
cui non fai parte dell'elenco può essere eseguito in parallelo con qualsiasi altro gruppo di test elencato.Ogni elenco di descrittori di gruppo contiene uno o più descrittori di gruppo e identifica l'ordine in cui eseguire i gruppi specificati in ciascun descrittore. È possibile utilizzare i seguenti formati per definire i singoli descrittori di gruppo:
-
— L'ID del gruppo di un gruppo di test esistente.group-id
-
[
—Elenco di gruppi di test che possono essere eseguiti in qualsiasi ordine l'uno rispetto all'altro.group-id
,group-id
] -
"*"
—Wild card. Equivale all'elenco di tutti i gruppi di test che non sono già specificati nell'elenco corrente dei descrittori di gruppo.
Il valore per
Order
deve inoltre soddisfare i seguenti requisiti:-
Il gruppo IDs di test specificato in un descrittore di gruppo deve esistere nella suite di test.
-
Ogni elenco di descrittori di gruppo deve includere almeno un gruppo di test.
-
Ogni elenco di descrittori di gruppo deve contenere un gruppo univoco. IDs Non è possibile ripetere un ID di gruppo di test all'interno di singoli descrittori di gruppo.
-
Un elenco di descrittori di gruppo può avere al massimo un descrittore di gruppo con caratteri jolly. Il descrittore di gruppo con caratteri jolly deve essere il primo o l'ultimo elemento dell'elenco.
Esempio
Per una suite di test che contiene i gruppi di test A, B, C, D ed E, il seguente elenco di esempi mostra diversi modi per specificare che IDT deve prima eseguire il gruppo di test A, quindi eseguire il gruppo di test B e quindi eseguire i gruppi di test C, D ed E in qualsiasi ordine.
-
Order: - - A - B - [C, D, E]
-
Order: - - A - B - "*"
-
Order: - - A - B - - B - C - - B - D - - B - E
-
Features
-
Facoltativo. L'elenco delle funzionalità del prodotto che desideri aggiungere IDT al
awsiotdevicetester_report.xml
file. Se non specifichi questa sezione, IDT non aggiungerà alcuna funzionalità del prodotto al rapporto.Una funzionalità del prodotto è costituita da informazioni definite dall'utente su criteri specifici che un dispositivo potrebbe soddisfare. Ad esempio, la funzionalità MQTT del prodotto può indicare che il dispositivo pubblica i messaggi correttamenteMQTT. Nel
awsiotdevicetester_report.xml
, le funzionalità del prodotto sono impostate comesupported
o come un valore personalizzato definito dall'utente, in base al superamento dei test specificati.not-supported
Ogni elemento dell'
Features
elenco è composto dai seguenti parametri:Name
-
Il nome della funzionalità.
Value
-
Facoltativo. Il valore personalizzato che desideri utilizzare nel rapporto anziché
supported
. Se questo valore non è specificato, allora based IDT imposta il valore della funzionalità susupported
o innot-supported
base ai risultati del test. Se testate la stessa funzionalità con condizioni diverse, potete utilizzare un valore personalizzato per ogni istanza di tale funzionalità nell'Features
elenco e IDT concatenare i valori della funzionalità per le condizioni supportate. Per ulteriori informazioni, consulta la pagina Condition
-
Un'espressione di contesto che restituisce un valore booleano. Se il valore valutato è vero, IDT aggiunge la funzionalità al rapporto di test al termine dell'esecuzione della suite di test. Se il valore valutato è falso, il test non è incluso nel rapporto.
Tests
-
Facoltativo. L'elenco dei descrittori dei test. Tutti i test specificati in questo elenco devono essere superati affinché la funzionalità sia supportata.
Ogni descrittore di test in questo elenco utilizza l'ID del gruppo di test e uno o più test case IDs per identificare i singoli test da eseguire da un gruppo di test specifico. Il descrittore di test utilizza il seguente formato:
GroupId:
group-id
CaseIds: [test-id
,test-id
] # optionalÈ necessario specificare una
Tests
oOneOfTests
per ciascuna funzionalità nell'Features
elenco. OneOfTests
-
Facoltativo. L'elenco dei descrittori dei test. Almeno uno dei test specificati in questo elenco deve essere superato affinché la funzionalità sia supportata.
Ogni descrittore di test in questo elenco utilizza l'ID del gruppo di test e uno o più test case IDs per identificare i singoli test da eseguire da un gruppo di test specifico. Il descrittore di test utilizza il seguente formato:
GroupId:
group-id
CaseIds: [test-id
,test-id
] # optionalÈ necessario specificare una
Tests
oOneOfTests
per ciascuna funzionalità nell'Features
elenco. IsRequired
-
Il valore booleano che definisce se la funzionalità è richiesta nel rapporto di test. Il valore predefinito è
false
.
Contesto dell'orchestratore di test
Il contesto del test orchestrator è un JSON documento di sola lettura che contiene dati disponibili per il test orchestrator durante l'esecuzione. Il contesto del test orchestrator è accessibile solo dal test orchestrator e contiene informazioni che determinano il flusso di test. Ad esempio, è possibile utilizzare le informazioni configurate dai test runner nel userdata.json
file per determinare se è necessario eseguire un test specifico.
Il contesto del test orchestrator utilizza il seguente formato:
{ "pool": {
<device-json-pool-element>
}, "userData": {<userdata-json-content>
}, "config": {<config-json-content>
} }
pool
-
Informazioni sul pool di dispositivi selezionato per l'esecuzione del test. Per un pool di dispositivi selezionato, queste informazioni vengono recuperate dal corrispondente elemento dell'array del pool di dispositivi di primo livello definito nel
device.json
file. userData
-
Informazioni contenute nel file.
userdata.json
config
-
Informazioni contenute nel
config.json
fascicolo.
È possibile interrogare il contesto utilizzando la JSONPath notazione. La sintassi per le JSONPath interrogazioni nelle definizioni di stato è. {{
Quando accedi ai dati dal contesto di test orchestrator, assicurati che ogni valore restituisca una stringa, un numero o un valore booleano.query
}}
Per ulteriori informazioni sull'utilizzo della JSONPath notazione per accedere ai dati dal contesto, consulta. Usa il IDT contesto