Configura l'orchestrator di test IDT - Gratuito RTOS

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'ConditionalTestselenco 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 comeAliases.

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 in Order 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:

  • group-id— L'ID del gruppo di un gruppo di test esistente.

  • [group-id, group-id]—Elenco di gruppi di test che possono essere eseguiti in qualsiasi ordine l'uno rispetto all'altro.

  • "*"—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. Nelawsiotdevicetester_report.xml, le funzionalità del prodotto sono impostate come supported o come un valore personalizzato definito dall'utente, in base al superamento dei test specificati. not-supported

Ogni elemento dell'Featureselenco è 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à su supported o in not-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'Featureselenco 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 o OneOfTests per ciascuna funzionalità nell'Featureselenco.

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 o OneOfTests per ciascuna funzionalità nell'Featureselenco.

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 è. {{query}} Quando accedi ai dati dal contesto di test orchestrator, assicurati che ogni valore restituisca una stringa, un numero o un valore booleano.

Per ulteriori informazioni sull'utilizzo della JSONPath notazione per accedere ai dati dal contesto, consulta. Usa il IDT contesto