1. Support
  2. Base de connaissances
  3. Surveillance des API
  4. Multi-step monitoring variables

Multi-step monitoring variables

Nous changeons notre interface. Certaines informations peuvent ne pas être à jour. En savoir plus.

Dans une configuration de la surveillance API multi-étapes, les variables sont généralement utilisées pour extraire des valeurs de vos réponses HTTP et les stocker temporairement, afin que vous puissiez les réutiliser ultérieurement. Cela vous permet de relier des étapes : chaque fois que vous voulez récupérer une information d’une réponse HTTP et utiliser cette information dans l’exécution de la prochaine requête HTTP, vous avez besoin d’une variable. Autrement dit : l’étape 1 reçoit une valeur de votre serveur et la stocke dans une variable. L’étape 2 prend alors la valeur qui vient d’être stockée et l’utilise pour construire une nouvelle requête. Vous pouvez utiliser autant de variables que vous souhaitez et les utiliser en autant d’étapes que vous souhaitez.

Une deuxième raison d’utiliser des variables est de définir certaines valeurs une seule fois et de les réutiliser dans plusieurs étapes. Ces valeurs seront généralement rajoutées dans la section Variables prédéfinies : ces variables sont disponibles à n’importe quelle étape du scénario multi-étapes. Consultez la section Variables prédéfinies pour plus d’informations.

Toutes les variables que vous définissez dans une étape sont évaluées dès que la requête HTTP a été exécutée et que la réponse a été traitée. À ce stade, si la variable existait déjà (soit par le biais d’une étape précédente, soit parce que vous l’avez prédéfinie), sa valeur sera mise à jour avec la nouvelle valeur. Sinon, une nouvelle variable est créée et ajoutée à la liste. Cette liste de variables et de valeurs correspondantes sera ensuite transmise à l’étape suivante.

Définir des variables

Si vous voulez utiliser des variables, vous devez nous indiquer quelle valeur nous devrions stocker dans ces variables. Comme pour la définition des assertions, les variables sont définies de la façon suivante :

Source propriété Nom de variable

par exemple :

Response body as JSON access_token access_token

  • La source de la variable : ce champ définit l’attribut de la réponse HTTP que vous souhaitez extraire. Chaque option disponible est décrite dans cet article.
  • La propriété de la variable : certaines options de source (en particulier l’extraction de contenu et les options liées à l’en-tête) vous obligent à spécifier davantage le contenu ou l’en-tête à vérifier. Ceci est expliqué plus en détail ici pour chaque type de source.
  • Le Nom de la variable : c’est l’identifiant qui sera utilisé dans les étapes suivantes pour se référer à cette variable, en utilisant une notation spéciale.

Si un problème survient lors de l’évaluation d’une variable (par exemple, parce que vous essayez d’extraire une valeur qui n’est pas présente dans le contenu de la réponse), l’étape échouera et une erreur sera signalée.

Utiliser les variables dans d’autres étapes

Une fois qu’une variable a été évaluée avec succès, sa valeur peut être réutilisée dans la définition de la requête des étapes suivantes, et également à l’intérieur des assertions (vérification du contenu de la réponse). La référence à une variable se fait en plaçant le nom de la variable entre doubles accolades : {{Nom de variable}}.

  • Dans l’URL d’une étape : https://myapi.customer.com/ProductInfo/{{ProductId}}

  • Dans un en-tête de requête : "Authorization": Bearer {{access_token}}

  • Dans le contenu du corps de la requête :

    { "ProductId": "{{ProductId}}", "Code": "P123456" }

  • Dans la valeur cible d’une assertion. Par exemple, si vous avez une variable {{ProductId}} (évaluée lors d’une étape précédente ou en tant que variable prédéfinie), vous pouvez l’utiliser pour vérifier qu’une réponse contient la valeur réelle contenue dans cette variable:

    Response body as JSON Products[0].Id Equals {{ProductId}}

  • Dans la valeur de propriété d’une assertion. Si vous avez une variable {{ProductId}}, vous pouvez faire référence à cette variable dans une expression JSON ou une requête XPath pour sélectionner le contenu que vous souhaitez vérifier :

    Response body as XML //Product[@Id="{{ProductId}}"]/Name/text() Equals Chocolate chip cookie

Variables prédéfinies

En dessous de l’éditeur d’étape, vous trouverez une section supplémentaire où vous pouvez spécifier plus de variables. Ces variables sont disponibles dès le début du scénario. Si vous avez besoin d’une valeur particulière plusieurs fois, vous pouvez définir cette valeur à l’avance ici et l’utiliser dans différentes étapes. Il peut s’agir d’un identifiant de produit que vous souhaitez utiliser tout au long de votre scénario, d’une clé d’API ou d’autres valeurs spéciales dont votre API a besoin. Un cas particulier consiste à utiliser une variable qui contient le nom de domaine pour chaque API. En utilisant cette variable dans chaque URL, vous n’avez pas besoin de répéter le nom de domaine à chaque étape, ce qui vous permet de la modifier très facilement pour l’ensemble du scénario. Pour ajouter une variable prédéfinie, cliquez sur + Rajouter variable dans les paramètres du moniteur, dans la section Variables prédéfinies. Ensuite, créez une variable nommée BaseUrl avec la valeur https://test.yourapi.com. Pour faire référence à cette variable, l’URL pour chaque étape de l’API pourrait alors prendre la forme {{BaseURL}}/UserService/GetUserInfo. Cette approche vous permet de modifier votre scénario multi-étapes pour qu’il pointe vers un environnement différent (par exemple, environnement de test ou environnement de production) sans avoir à modifier chaque étape.

Des variables prédéfinies peuvent également être utilisées au cas où des données sensibles doivent être envoyées à tout moment pendant l’exécution du moniteur. Par exemple, si votre API nécessite un accès authentifié, vous devrez peut-être vous connecter ou récupérer un jeton d’accès en ajoutant des informations d’identification à l’une de vos requêtes. Les données sensibles sont stockées dans le coffre-fort. Pour configurer les informations d’identification du coffre-fort à utiliser dans un moniteur d’API multi-étapes, procédez comme suit :

  1. D’abord, assurez-vous de les avoir ajoutées au coffre-fort.
  2. Créez la variable prédéfinie comme vous le feriez normalement, comme décrit ci-dessus.
  3. Pour référencer un élément du coffre-fort, cliquez sur l’icône […] sous valeur, ce qui ouvre le sélecteur de valeur.

Sélecteur de valeur de coffre-fort MSA

  1. Dans la liste, repérez les informations d’identification recherchées et sélectionnez une valeur dans le champ du nom d’utilisateur ou du mot de passe.
  2. Donnez à votre variable un nom parlant que vous utiliserez pour y faire référence lors de l’exécution du moniteur, comme décrit dans cet article. Dans l’exemple ci-dessous, la variable examplePassword est désignée par {{examplePassword}}.

Sélecteur de valeur de coffre-fort MSA

Dans le journal du moniteur, les valeurs provenant du champ password du coffre-fort seront affichées sous forme d’astérisques, afin qu’elles restent cachées.

Sélecteur de valeur de coffre-fort MSA

Encodage des valeurs des variables

En fonction de l’endroit où vous utilisez vos variables, il est parfois nécessaire d’encoder les valeurs. Cet encodage consiste à convertir les caractères spéciaux dans un format qui convient à une requête HTTP. En règle générale, les variables utilisées dans une URL doivent être encodées. Par exemple, si on veut construire une URL prenant un paramètre de nom et que l’on souhaite utiliser une variable appelée CompanyName pour spécifier une valeur pour ce paramètre. Sans utiliser l’encodage, on l’utiliserait comme ceci:

https://my.api.com/GetCompanyInfo?name={{CompanyName}}

Supposons maintenantque la variable CompanyName contienne la valeur Ben & Jerry's. Cette valeur contient des espaces et un caractère “&”, qui ont une signification particulière dans une URL. Sans encodage, la valeur reçue sur le serveur serait incorrecte. En appliquant d’abord l’encodage, la valeur sera convertie en Ben\+%26\+Jerry's, qui sera interprétée par le serveur comme la valeur d’origine. Pour encoder vos variables, utilisez la fonction {{@UrlEncode (…)}}. À l’intérieur des parenthèses, mettez le nom complet de la variable, par exemple {{CompanyName}}. Utilisé dans une URL, cela ressemblerait à :

https://my.api.com/GetCompanyInfo?name={{@UrlEncode({{CompanyName}})}}

Si vous savez qu’une variable ne contiendra jamais de caractères spéciaux (par exemple, uniquement des valeurs numériques), il n’est pas nécessaire d’utiliser la fonction @UrlEncode. Par contre, les valeurs de variables qui apparaissent dans le corps de requête de l’étape seront encodés automatiquement, si un en-tête Content-Type a été spécifié avec la valeur application/x-www-forme-urlencoded. Les autres types de contenu ne nécessitent généralement pas d’encodage d’URL.

Variables automatiques

En plus des variables que vous définissez dans la configuration de votre moniteur, vous avez également accès à un certain nombre de variables automatiques que nous créons pour vous. La plupart d’entre elles sont en fait des fonctions qui génèrent une valeur que vous pouvez utiliser dans vos requêtes HTTP, et lors de l’évaluation de vos réponses HTTP à l’aide d’assertions. Si vous souhaitez utiliser des variables automatiques dans votre surveillance d’API multi-étapes, consultez notre liste complète des variables automatiques disponibles.

Fonctions définies par l’utilisateur

Dans certains cas, les données entrantes auront besoin d’être transformées ou mappées, pour en extraire plus facilement un sens. Uptrends vous permet de définir des fonctions utilisateur, qui peuvent être utilisées pour convertir une valeur de variable (acquises lors d’une étape précédente ou à partir d’une variable système fournie par Uptrends) en une nouvelle valeur. Pour plus d’informations sur la configuration et l’utilisation des fonctions définies par l’utilisateur, consultez cet article de la base de connaissances.

En utilisant ce site, vous consentez à l’utilisation de cookies conformément à notre Politique de cookies.