Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utiliser le contexte IDT
Lorsque IDT exécute une suite de tests, celle-ci peut accéder à un ensemble de données qui peuvent être utilisées pour déterminer le fonctionnement de chaque test. Ces données sont appelées contexte IDT. Par exemple, la configuration des données utilisateur fournie par les testeurs dans un userdata.json fichier est mise à la disposition des suites de tests dans le contexte IDT.
Le contexte IDT peut être considéré comme un document JSON en lecture seule. Les suites de tests peuvent récupérer des données et écrire des données dans le contexte à l'aide de types de données JSON standard tels que des objets, des tableaux, des nombres, etc.
Schéma de contexte
Le contexte IDT utilise le format suivant :
{ "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-
Informations du config.json dossier. Le
configchamp contient également les champs supplémentaires suivants :config.timeoutMultiplier-
Le multiplicateur de toute valeur de délai d'attente utilisée par la suite de tests. Cette valeur est spécifiée par le testeur à partir de l'interface de ligne de commande IDT. La valeur par défaut est
1. config.idRootPath-
Cette valeur est un espace réservé pour la valeur de chemin absolue de IDT lors de la configuration du
userdata.jsonfichier. Ceci est utilisé par les commandes build et flash.
device-
Informations sur l'appareil sélectionné pour le test. Ces informations sont équivalentes à l'élément de
devicestableau du device.json fichier pour le périphérique sélectionné. devicePool-
Informations sur le pool de périphériques sélectionné pour le test. Ces informations sont équivalentes à l'élément du tableau de pool de périphériques de niveau supérieur défini dans le
device.jsonfichier pour le pool de périphériques sélectionné. resource-
Informations sur les périphériques de ressources contenues dans le
resource.jsonfichier.resource.devices-
Ces informations sont équivalentes au
devicestableau défini dans leresource.jsonfichier. Chaquedevicesélément inclut le champ supplémentaire suivant :resource.device.name-
Le nom du périphérique de ressources. Cette valeur est définie sur la
requiredResource.namevaleur dutest.jsonfichier.
testData.awsCredentials-
Les AWS informations d'identification utilisées par le test pour se connecter au AWS cloud. Ces informations sont extraites du
config.jsonfichier. testData.logFilePath-
Le chemin d'accès au fichier journal dans lequel le scénario de test écrit les messages de journal. La suite de tests crée ce fichier s'il n'existe pas.
userData-
Informations fournies par le testeur dans le userdata.json fichier.
Accédez aux données dans le contexte
Vous pouvez interroger le contexte à l'aide de la notation JSONPath à partir de vos fichiers de configuration et de votre exécutable texte à l'aide des API GetContextValue etGetContextString. La syntaxe des chaînes JSONPath permettant d'accéder au contexte IDT varie comme suit :
-
Dans
suite.jsonettest.json, vous utilisez{{. En d'autres termes, n'utilisez pas l'élément racinequery}}$.pour démarrer votre expression. -
Dans
statemachine.json, tu utilises{{$..query}} -
Dans les commandes d'API, vous utilisez
ouquery{{$., selon la commande. Pour plus d'informations, consultez la documentation en ligne dans les kits de développement logiciel.query}}
Le tableau suivant décrit les opérateurs d'une expression JSONPath typique de foobar :
| Opérateur | Description |
|---|---|
$ |
L'élément racine. Étant donné que la valeur de contexte de niveau supérieur pour IDT est un objet, vous l'utiliserez généralement $. pour démarrer vos requêtes. |
.childName |
Permet d'accéder à l'élément enfant avec un nom childName à partir d'un objet. S'il est appliqué à un tableau, produit un nouveau tableau avec cet opérateur appliqué à chaque élément. Le nom de l'élément fait la distinction entre majuscules et minuscules. Par exemple, la requête pour accéder à la awsRegion valeur de l'configobjet est$.config.awsRegion. |
[start:end] |
Filtre les éléments d'un tableau, en récupérant les éléments en commençant par l'startindex et en remontant jusqu'à l'endindex, les deux inclus. |
[index1, index2, ... , indexN] |
Filtre les éléments d'un tableau, en récupérant les éléments uniquement à partir des indices spécifiés. |
[?(expr)] |
Filtre les éléments d'un tableau à l'aide de l'exprexpression. Cette expression doit être évaluée à une valeur booléenne. |
Pour créer des expressions de filtre, utilisez la syntaxe suivante :
<jsonpath>|<value>operator<jsonpath>|<value>
Dans cette syntaxe :
-
jsonpathest un JSONPath qui utilise la syntaxe JSON standard. -
valueest une valeur personnalisée qui utilise la syntaxe JSON standard. -
operatorest l'un des opérateurs suivants :-
<(Inférieur à) -
<=(Inférieur ou égal à) -
==(Égal à)Si le JSONPath ou la valeur de votre expression est un tableau, une valeur booléenne ou une valeur d'objet, il s'agit du seul opérateur binaire pris en charge que vous pouvez utiliser.
-
>=(supérieur ou égal à) -
>(Supérieur à) -
=~(Correspondance entre expressions régulières). Pour utiliser cet opérateur dans une expression de filtre, le JSONPath ou la valeur sur le côté gauche de votre expression doit correspondre à une chaîne et le côté droit doit être une valeur de modèle qui suit la syntaxe RE2.
-
Vous pouvez utiliser des requêtes JSONPath au format {{query}} comme chaînes d'espace réservé dans les environmentVariables champs args et dans test.json les environmentVariables champs des fichiers. suite.json IDT effectue une recherche contextuelle et remplit les champs avec la valeur évaluée de la requête. Par exemple, dans le suite.json fichier, vous pouvez utiliser des chaînes d'espace réservé pour spécifier les valeurs des variables d'environnement qui changent avec chaque scénario de test et IDT renseignera les variables d'environnement avec la valeur correcte pour chaque scénario de test. Toutefois, lorsque vous utilisez des chaînes d'espace réservé dans suite.json les fichiers test.json et, les considérations suivantes s'appliquent à vos requêtes :
-
Chaque occurrence de la
devicePoolclé dans votre requête doit être en minuscules. Autrement dit, utilisez-le à ladevicepoolplace. -
Pour les tableaux, vous ne pouvez utiliser que des tableaux de chaînes. De plus, les tableaux utilisent un format non standard
item1, item2,...,itemN. Si le tableau ne contient qu'un seul élément, il est sérialisé comme telitem, ce qui le rend impossible à distinguer d'un champ de chaîne. -
Vous ne pouvez pas utiliser d'espaces réservés pour extraire des objets du contexte.
Pour ces raisons, nous vous recommandons, dans la mesure du possible, d'utiliser l'API pour accéder au contexte de votre logique de test au lieu d'utiliser des chaînes d'espaces réservés dans suite.json les fichiers test.json et. Cependant, dans certains cas, il peut être plus pratique d'utiliser des espaces réservés JSONPath pour récupérer des chaînes individuelles à définir comme variables d'environnement.