Opérateurs d'assertion - Cloud

Guide d'utilisation de Talend Cloud API Tester

Version
Cloud
Language
Français (France)
Product
Talend Cloud
Module
Talend API Tester
Content
Création et développement > Test d'API
Utiliser les opérateurs d'assertion de Talend Cloud API Tester

Les assertions sont liées aux opérateurs. Talend Cloud API Tester dispose d'un certain nombre d'opérateurs que vous pouvez utiliser.

Remarque : Si vous souhaitez qu'un corps de réponse soit interprété comme JSON, vous devez utiliser l'élément JSON body dans votre assertion. Si vous utilisez l'élément Body content, le corps sera interprété comme une chaîne de caractères.

Égalité

Les opérateurs Equals et Does not equal sont les plus simples de tous et ils n'effectuent qu'une vérification d'égalité. Heureusement, ils sont compatibles avec JSON. S'ils sont utilisés dans des tableaux JSON, ils n'invalideront pas la requête si les tableaux attendus et courants sont formatés différemment.

L'opérateur Does not equal est l'exact contraire de Equals.

Comparaison

Les opérateurs de comparaison sont :

  • Greater than (supérieur à) ;
  • Greater than or equal (supérieur ou égal à) ;
  • Less than (inférieur à) ;
  • Less than or equal (inférieur ou égal à).

Les comparaisons sont effectuées de cette façon :

  • Sur des nombres : il compare les nombres.
  • Sur des chaînes : il compare la longueur des chaînes.
  • Sur des booléens, des tableaux et des objets JSON : il les compare en tant que chaînes.
  • Sur un élément null : une erreur s'affiche.

Les objets que vous comparez doivent être au même format. Pour éviter les erreurs relatives au format, vous pouvez d'abord utiliser une assertion afin de valider le format des objets à comparer, à l'aide d'une regex par exemple.

Comparaison de dates :
  • Les dates au format timestamp (horodatage) sont gérées en tant qu'integer (entiers) et les dates au format ISO sont gérées en tant que string (chaînes de caractères).
  • Les dates ISO sont comparées de manière lexicographique et la comparaison peut s'effectuer uniquement, de manière précise, si elles utilisent le même format et le même fuseau horaire. Talend Cloud API Tester produit des dates au format ISO sur le fuseau horaire UTC.
  • Vous pouvez obtenir des résultats faux positifs si la date est dans un format différent ou si vous comparez une date à un autre type de valeur. Par exemple, si vous vérifiez qu'une date est bien antérieure à une autre, une date dans un format différent peut être antérieure, d'un point de vue lexicographique, même si elle est postérieure dans les faits. Il est donc recommandé d'utiliser des assertions afin de vérifier le format et la valeur des dates, avant de les comparer.

Existence

L'opérateur Exists vérifie que l'élément est présent dans la réponse.

L'opérateur Does not exist est l'exact contraire d'Exists.

Longueur

Les opérateurs de longueur sont :

  • Equals (égal à);
  • Greater than or equal (supérieur ou égal à) ;
  • Less than or equal (inférieur ou égal à).

La longueur est calculée comme suit :

  • Sur des chaînes : il retourne le nombre de caractères dans les chaînes.
  • Sur des tableaux JSON ou XML : il retourne le nombre d'éléments dans le tableau.
  • Sur des objets JSON : il retourne le nombre de clés dans l'objet.
  • Sur un élément null, un nombre et des booléens : N/A - une erreur s'affiche.
  • Sur des en-têtes à plusieurs valeurs : il retourne le nombre de valeurs de l'en-tête.
Remarque : Un en-tête peut avoir plusieurs valeurs s'il est présent à plusieurs reprises ou s'il contient une liste de valeurs séparées par des virgules.

Contenu

Les opérateurs de contenu sont :

  • Contains (contient) ;
  • Does not contain (ne contient pas).

Ils fonctionnent de cette façon :

  • Sur des chaînes : ils vérifient que l'élément contient la substring donnée.

    Darth Vader contient arth

  • Sur des tableaux JSON : ils vérifient que l'élément contient toutes les valeurs données. Les valeurs attendues peuvent être un tableau JSON ou des valeurs séparées par des virgules.

    [ "Darth Vader", "Luke Skywalker", "Leia Skywalker" ] contient "Darth Vader", "Luke Skywalker"

    [ "Darth Vader", "Luke Skywalker", "Leia Skywalker" ] contient [ "Darth Vader" ]

  • Sur des objets JSON, ils vérifient que l'élément contient toutes les clés données.

    { "age": 41, "lightSaberColor": "red", "forcePower": "3000" } contient "age","lightSaberColor"

    { "age": 41, "lightSaberColor": "red", "forcePower": "3000" } contient [ "forcePower" ]

  • Sur ces tableaux de nœuds XML, ils vérifient que l'élément contient tous les nœuds donnés listés en tant que tableau de nœuds.

    [<title lang="en">Harry Potter</title>, <title lang="en">XQuery Kick Start</title>, <title lang="en">Learning XML</title>] contient [<title lang="en">Harry Potter</title>, <title lang="en">Learning XML</title>]

  • Sur des éléments null, des nombres et des booléens : N/A - une erreur s'affiche.

Correspondance d'expression régulière

L'opérateur Matches permet de vérifier qu'un élément correspond à l'expression régulière donnée.

L'opérateur va faire correspondre un élément et des expressions JavaScript régulières valides. Elles peuvent être de deux formes :

  • Sans indicateur : ^Darth correspond à Darth Vader.
  • Avec indicateurs : /^darth/i correspond à Darth Vader.

Une documentation plus complète existe sur MDN (en anglais).

Si vous souhaitez apprendre à créer une expression régulière et à la tester sur des exemples concrets, nous vous recommandons le site internet Regex101 (en anglais). Assurez-vous d'avoir sélectionné JavaScript dans le menu de gauche pour vos expressions régulières.