Requête JSONPath et JSONPath Builder

Le JSONPath Builder est un utilitaire d'aide utilisé lors de la création d'analyseurs de performances et actifs API REST, ainsi que de composants de surveillance des applications actives et de performances (APM) API REST. Cet outil aide les utilisateurs à sélectionner l'élément JSON qu'ils veulent surveiller, et génère une requête JSONPath pour l'élément JSON sélectionné.

La requête JSONPath peut être écrite dans deux styles, entre crochets et entre points, par exemple :

Cette rubrique décrit le flux de travail et les syntaxes prises en charge pour l'outil JSONPath Builder.

JSONPath Builder dans l'analyseur de performance des API REST

Lorsque vous ajoutez un nouvel analyseur de performance de l'API REST à partir de la bibliothèque d'analyseur, la fenêtre Add REST API Performance Monitor (Ajouter un analyseur de performance d'API REST) s'ouvre. Cette fenêtre contient deux sections connexes, REST API et JSONPATH, qui sont utilisées dans l'outil JSONPath Builder.

Fournissez un nom, une description et une valeur de délai d'attente pour l'analyseur de performances REST API, puis suivez ces étapes pour utiliser l'outil JSONPath Builder :

  1. Indiquez le terminal de l'URL de l'API REST pour lequel vous souhaitez obtenir des mesures de performance.
  2. (Facultatif) Ajoutez des en-têtes personnalisés en utilisant le bouton Modifier les en-têtes personnalisés.
  3. (Facultatif) Sélectionnez Ignorer les erreurs du certificat si vous devez supprimer les messages d'erreur de certificat.
  4. (Facultatif) Sélectionnez Utiliser l'accès anonyme pour éviter d'envoyer les informations d'identification de l'API REST au point de terminaison. Cette option n'est valable que si le terminal de l'API REST ne nécessite pas d'authentification pour y accéder.
  5. Cliquez sur le bouton JSONPath Builder. Si l'URL de l'API REST était valide, la fenêtre JSONPath Builder s'ouvre. Dans cette fenêtre, vous pouvez sélectionner le champ numérique que vous voulez surveiller pour les données de performance. L'image suivante montre la fenêtre « Bibliothèque pour enfants » :

jsonpath_builder

  1. Cliquez sur Vérifier pour exécuter un test sur le terminal. Si l'analyseur de performance peut extraire un résultat numérique de la valeur du point de terminaison JSONPATH, l'analyseur peut être enregistré et ajouté à la bibliothèque des analyseurs de performances. L'image suivante montre un exemple de JSONPath qui renvoie une valeur numérique valide à l'analyseur de performances, qui a été construit à l'aide de JSONPath Builder :

REST_API_Perf_Monitor_jsonpath

JSONPath Builder dans l'analyseur actif API REST

Lorsque vous ajoutez un nouvel analyseur actif d'API REST à partir de la bibliothèque d'analyseurs, la fenêtre Add REST API Active Monitor (Ajouter un analyseur actif d'API REST) s'ouvre. Cette fenêtre contient deux sections connexes, REST API et Down Condition (Condition indisponible), qui inclut la grille Requête JSONPath comme méthode pour ajouter des conditions de baisse pour l'analyseur. La grille Requête JSONPath fait appel à JSONPath Builder lorsque vous sélectionnez le bouton de la loupe.

Lorsque vous travaillez avec les analyseurs actifs de l'API REST, vous pouvez définir plusieurs requêtes JSONPath pour évaluer un état d'arrêt de l'analyseur. En outre, contrairement aux analyseurs de performances, les analyseurs actifs prennent en charge la validation des conditions de descente par rapport à des variables de type numérique, booléen et chaîne.

Après avoir sélectionné l'élément JSON dans JSONPath Builder, la grille Requête JSONPath détecte automatiquement le type de l'élément et le saisit dans la colonne Type de la grille Requête JSONPath.

Fournissez un nom, une description et une valeur de délai de l'analyseur actif de l'API REST, puis suivez ces étapes pour utiliser l'outil JSONPath Builder :

  1. Indiquez le terminal de l'URL de l'API REST pour lequel vous souhaitez obtenir des mesures de performance.
  2. (Facultatif) Ajoutez des en-têtes personnalisés en utilisant le bouton Modifier les en-têtes personnalisés.
  3. (Facultatif) Sélectionnez Ignorer les erreurs du certificat si vous devez supprimer les messages d'erreur de certificat.
  4. (Facultatif) Sélectionnez Utiliser l'accès anonyme pour éviter d'envoyer les informations d'identification de l'API REST au point de terminaison. Cette option n'est valable que si le terminal de l'API REST ne nécessite pas d'authentification pour y accéder.
  5. Sélectionnez les codes de réponse HTTP qui signaleront que l'analyseur est hors service.
  6. Sélectionnez le bouton + pour ajouter une ligne à la grille Requête JSONPath. La ligne est vide par défaut.
  7. Double-cliquez à l'intérieur de la ligne vide dans la grille de la requête JSONPath, puis sélectionnez le bouton de la loupe pour ouvrir le JSONPath Builder. Cela vous invite à entrer les informations d'identification de l'API REST si Utiliser l'accès anonyme n'est pas coché. La fenêtre JSONPath Builder s'ouvre. Dans cette fenêtre, vous pouvez sélectionner le terminal de type numérique, booléen ou chaîne de caractères que vous voulez surveiller pour les conditions de panne. L'image suivante montre un exemple de conditions descendantes pour un exemple d'API sur les livres de bibliothèque :
    REST_API_Active_Monitor_jsonpath
  8. Cliquez sur Enregistrer pour ajouter l'analyseur à la bibliothèque des analyseurs actifs.

JSONPath Builder dans le composant de surveillance des applications de performance (APM) de l'API REST

Le composant de surveillance des applications (APM) des performances de l'API REST fonctionne de la même manière que l'analyseur de performances de l'API REST, avec l'ajout des conditions de seuil d'avertissement et de baisse pour la réponse de la valeur numérique. Un composant APM de l'API REST peut être attaché à un périphérique de test et validé. L'image suivante montre l'exemple de terminal d'API numérique ainsi que les valeurs de seuil d'avertissement et d'indisponibilité :
REST_API_APM_perf

JSONPath Builder dans le composant de surveillance de les applications actives (APM) de l'API REST

Le composant de surveillance des applications actives (APM) de l'API REST fonctionne de la même manière que l'analyseur actif de l'API REST, avec l'ajout d'un périphérique de test auquel le composant APM de l'API REST peut être attaché et l'analyseur validé.

Requêtes JSONPath avancées

Comme indiqué plus haut, la requête JSONPath peut être écrite dans deux styles, entre crochets et entre points, par exemple :

S'il existe un tableau JSON de « livres » dont le premier élément porte le nom « Le chat dans le chapeau » ; vous pouvez accéder à cette valeur en saisissant l'une des requêtes JSON suivantes :

Outre la prise en charge de la génération de requêtes JSONPath pour les éléments JSON à l'aide de JSONPath Builder, vous pouvez également écrire des requêtes avancées pour valider la réponse JSON à l'aide de filtres dans les requêtes JSONPath. Les filtres peuvent être utilisés pour effectuer des opérations en utilisant des opérateurs de comparaison. De plus, la propriété « length » est disponible pour retourner la longueur d'un tableau JSON.

Ces propriétés peuvent être utilisées dans le filtre de la requête JSONPath pour renvoyer des valeurs basées sur des conditions et filtrer les valeurs qui ne sont pas nécessaires.

Note: Le sélecteur de jetons ne renvoie une valeur que si l'objet capturé est de longueur 1. Une erreur d'analyse sera déclenchée si plusieurs valeurs sont renvoyées par la requête JSONPath.

Les opérateurs de comparaison pris en charge sont répertoriés dans le tableau suivant :

Nom de l'opérateur de comparaison

Opérateur de comparaison

Exemple (entre parenthèses)

Exemple (notation avec point)

Remarques

Égal(e) à

==

['books'][?(@.name == 'The Cat in the Hat')]['copies']

$.books[?(@.name == 'The Cat in the Hat')].copies

La requête renvoie le nombre d'exemplaires de « Le chat dans le chapeau » en stock.

Différent(e) de

!=

['books'][?(@.name != 'The Cat in the Hat')]['copies']

$.books[?(@.name != 'The Cat in the Hat')].copies

 

Inférieur(e) à

<

['books'][?(@.copies < 3)]

$.books[?(@.copies < 3)]

Pour les analyseurs actifs et les composants APM actifs, la condition descendante serait une chaîne qui contient « Le chat dans le chapeau », si « Le chat dans le chapeau » contient moins de 3 copies, par exemple.

Inférieur(e) ou égal(e) à

<=

['books'][?(@.copies <= 3)]

$.books[?(@.copies <= 3)]

 

Supérieur(e) à

>

['books'][?(@.copies > 1)]['bookId']

$.books[?(@.copies > 1)].bookId

Pour les analyseurs actifs et les composants APM actifs, la condition descendante peut être un nombre qui ne contient pas 1 (le bookId de « Le chat dans le chapeau »), si « Le chat dans le chapeau » contient plus d'un exemplaire, par exemple.

Supérieur(e) ou égal(e) à

>=

['books'][?(@.copies > 1)]['bookId']

$.books[?(@.copies > 1)].bookId

 

Longueur

.length

['books'].length

$.books.length

Renvoie la longueur du tableau JSON.