Aller au contenu

Automatisation avec Postman

Le support de Postman est disponible à partir de Squash TM 3.0.

Configuration de l'environnement de test

newman et son générateur de rapports HTML (newman-reporter-html) doivent être présents dans l'environnement de test.

Ils peuvent être installés avec les commandes :

npm install -g newman
npm install -g newman-reporter-html
(Si npm n'est pas disponible, vous devez télécharger et installer Node.js.)

Référence du test dans Squash TM

Info

Le résultat de chaque exécution du cas de test Squash TM est calculé en prenant en compte les résultats individuels de chaque requête incluse dans le fichier collection lié, voire d'un niveau de répertoire spécifique de la collection :

  • Si au moins un test est en statut Error (dans le cas d'un problème technique), l'exécution sera en statut Blocked.
  • Si au moins un test a échoué fonctionnellement et qu'aucun test n'est en statut Error, l'exécution sera en statut Failed.
  • Si tous les tests ont réussi, l'exécution sera en statut Success.

Pour lier un cas de test Squash TM à un test automatisé Postman, le champ Référence du test automatisé du bloc Automatisation du cas de test doit avoir la forme suivante :

[1] / [2] # [3] # [4]

Avec :

  • [1] : Nom du projet sur le dépôt de source.

  • [2] : Chemin et nom du fichier de collection Postman à partir de la racine du projet (avec son extension .postman_collection.json).

  • [3] : Nom d'un répertoire spécifique dans la collection (option --folder de Newman). Ce paramètre est optionnel.

  • [4] : Nom d'une requête spécifique à parser pour laquelle on désire obtenir un résultat en particulier.

Référence du test automatisé et exécution

La précision de la requête [4] dans la référence du test n'influe pas sur l'exécution, mais sur la détermination du résultat du test.
Ainsi, même en définissant une granularité à l'échelle de la requête, la totalité des requêtes contenues dans le répertoire sera exécutée (ce qui signifie, par exemple, que si plusieurs cas de test Squash TM pointent vers le même répertoire mais vers des requêtes différentes, toutes les requêtes du répertoire seront exécutées plusieurs fois).
Les rapports de test contiennent les traces de toutes les requêtes exécutées. Par contre, seuls les statuts Error / Failed / Success correspondant à cette granularité fine seront considérés pour définir le résultat du cas de test.

Unicité du répertoire spécifique

Si le répertoire racine du projet contient plusieurs répertoires ayant pour nom [3], Newman n'exécutera que le premier qu'il trouve. Il est donc fortement conseillé de choisir des noms uniques pour les répertoires de plus bas niveau.

Nature des paramètres Squash TM exploitables

Les paramètres Squash TM exploitables dans un script Postman vont différer suivant si vous utilisez les composants Squash DEVOPS Community ou Squash DEVOPS Premium.

Voici le tableau des paramètres exploitables (ces paramètres sont transmis en tant que paramètres de test, voir ci-dessous, Squash TM ne génère pas de paramètres globaux) :

Nature Clé Community Premium
Nom du jeu de données DSNAME
Paramètre d'un jeu de données DS_[nom]
Référence du cas de test TC_REFERENCE
Champ personnalisé du cas de test TC_CUF_[code]
Champ personnalisé de l'itération IT_CUF_[code]
Champ personnalisé de la campagne CPG_CUF_[code]
Champ personnalisé de la suite de tests TS_CUF_[code]

Légende :

  • [code] : valeur renseignée dans le champ “Code” d’un champ personnalisé
  • [nom] : nom du paramètre tel que renseigné dans Squash TM

Comme indiqué, Squash TM ajoute un préfixe au code du champ personnalisé transmis. Assurez-vous de le prendre en compte.

Voir la documentation de Squash TM pour plus d'information sur les champs personnalisés.

Utilisation de paramètres

Il est possible lors de l’exécution d’un test Postman d’exploiter des paramètres au sein de celui-ci. Un paramètre peut être un paramètre de test ou un paramètre global. Squash TM ne transmet que des paramètres de test. Des paramètres de test et des paramètres globaux peuvent être utilisés dans Squash DEVOPS avec l'action postman/params.

Les paramètres globaux sont transmis en tant que global variables.
Les paramètres de test sont transmis en tant que environment variables.
Voir la documentation de Postman où sont décrits ces types de variables et comment les utiliser.
Cela signifie que

  • la valeur d'un paramètre global peut être récupérée grâce à pm.globals.get("param_name")
  • la valeur d'un paramètre de test peut être récupérée grâce à pm.environment.get("param_name")
  • la valeur d'un paramètre global ou d'un paramètre de test peut être récupérée grâce à la syntaxe {{param_name}} ; si un paramètre global et un paramètre de test ont tous deux pour nom param_name, la valeur du paramètre de test est utilisée

Exemple

Ci-dessous un exemple d'un fichier de collection Postman et l’automatisation du cas de test Squash TM associé :

postman-params-1

postman-params-2

postman-params-3

postman-params-4

Versions supportées

Squash AUTOM et Squash DEVOPS ont été validés avec Postman 8.12.1. Toute version récente devrait fonctionner.

Retour en haut de la page