Bonjour à tous, je suis le chef du département des tests, et récemment une tùche pour tester l'API est apparue. Pour le résoudre, j'ai maßtrisé le nouvel outil Postman et JavaScript pour moi.
Au départ, pour chaque API, j'ai écrit mes collections et préparé des données de test au format JSON. C'est assez pratique, mais avec un grand nombre de tests et de collections, il devient peu rentable de le maintenir. Et il n'est pas pratique de valider des données en JSON.
Pour rĂ©soudre ces problĂšmes, j'ai Ă©crit une macro pour Excel et une collection dans Postman. Maintenant, dans Postman, j'ai une collection pour toutes les API et un ensemble standard de fonctions pour traiter les donnĂ©es entrantes et valider les rĂ©sultats renvoyĂ©s. J'ai rĂ©ussi Ă transfĂ©rer la gestion des donnĂ©es de test et la sĂ©quence d'exĂ©cution des requĂȘtes vers Excel.
Quel était
1. JSON avec données
Auparavant, le kit de test Ă©tait stockĂ© sous cette forme2. 2. La sĂ©quence d'exĂ©cution des requĂȘtes avec les gestionnaires JS a Ă©tĂ© stockĂ©e dans les collections Postman.

Qu'est devenu
1. Suite de tests déplacée vers Excel

Toutes les données sont saisies dans Excel (caractÚres clés de contrÎle: R, H, I, etc. je vais écrire ci-dessous) puis, à l'aide d'une macro, elles sont transférées au format json:

2. Dans Postman

L'expĂ©rience a Ă©tĂ© menĂ©e sur un ensemble standard d'opĂ©rations CRUD, qui peuvent ĂȘtre dĂ©veloppĂ©es davantage.
Ătant donnĂ© que dans Postman, toutes les opĂ©rations sont effectuĂ©es uniquement dans le cadre de la demande, j'ai dĂ» saisir une demande get vide Ă la fin de laquelle la prochaine demande de la sĂ©quence est dĂ©terminĂ©e. ExĂ©cutez le code JS avant la demande et dĂ©terminez la premiĂšre demande sans Ă©chec vide.
Dans toutes les demandes, le script de pré-demande et les sections de test sont vides, tout le code est unifié pour les demandes et est stocké dans les sections générales du script de pré-demande et du test du dossier Collection d'API.

Dans toutes les requĂȘtes, il est important de faire attention Ă l'url et Ă la section Body dans les requĂȘtes POST et PUT, leurs valeurs sont dĂ©terminĂ©es par des variables, dont les valeurs sont entrĂ©es depuis le JSON avec les donnĂ©es.

Maintenant sur les tests eux-mĂȘmes
Comment lire Excel . La premiÚre ligne non vide est le numéro du cas de test, c'est-à -dire que le cas de test est stocké verticalement et sur cette page il y a 9 cas de test. Dans l'ensemble actuel, dans chaque cas de test, une demande POST sera exécutée en premier, puis Supprimer.
Comment démarrer la génération Json à partir d'Excel . Dans Excel, appuyez sur F11 et allez dans "EtaBook", lancez-y la macro.
Mots clefs
R - demande, signifie le début d'une nouvelle demande, dans la deuxiÚme cellule de la ligne le type de demande est stocké, dans la troisiÚme est l'adresse à laquelle vous devez contacter. Veuillez noter qu'en url vous pouvez spécifier des variables Postman
La valeur de la variable sera extraiteH - DonnĂ©es Ă vĂ©rifier dans l'en-tĂȘte, jusqu'Ă prĂ©sent, seul le code de rĂ©ponse a Ă©tĂ© entrĂ©, Postman ne les vĂ©rifie que dans le facteur. Il est important que dans Excel le nom soit le mĂȘme "code de rĂ©ponse", ou corrigĂ© dans Postman
I, I2 ... - La section des données d'entrée prend en charge le stockage des modÚles de données de toute imbrication, la figure à droite de I est responsable du niveau d'imbrication. L'ensemble de données suivant est enveloppé dans JSON comme ceci. Si la variable qui stocke les données est vide, elle ne sera pas ajoutée. Autrement dit, s'il n'y a pas de valeur dans la variable inn, elle ne sera pas ajoutée et la variable principale sera ajoutée, car elle stocke le modÚle. De plus, si le modÚle entier est vide, il ne sera pas ajouté non plus.
Les données de cette section seront soumises dans le corps de la demande
O, O2 ... - Section des paramÚtres de sortie, ils seront comparés à ceux retournés par réponse. Comme la section Input, il prend en charge le stockage de modÚles.
Lors de la comparaison, les donnĂ©es sont converties en chaĂźne, j'ai Ă©galement limitĂ© le niveau de rĂ©cursivitĂ©, cela peut ĂȘtre supprimĂ©PO - Postman Output, les valeurs de cette section seront extraites du corps de rĂ©ponse de la demande par le nom de la variable et Ă©crites dans la variable Postman.
Dans Excel, il suffit de mettre n'importe quel caractÚre, la valeur de la réponse, pas Excel, est écrite dans la variable
Cette section est nĂ©cessaire pour stocker des donnĂ©es entre des scripts, par exemple, pour supprimer un objet avec l'ID qui a Ă©tĂ© créé dans la demande prĂ©cĂ©dentePC - Commande Postman, introduite une seule commande «terminate», elle est utilisĂ©e pour forcer la terminaison aprĂšs l'exĂ©cution de la requĂȘte en cours. Utile pour un test nĂ©gatif, afin de ne pas provoquer de suppression de l'objet créé.
La saisie de cette commande a permis de stocker les tests positifs et négatifs sur une seule feuille
PI - Entrée Postman, les valeurs de cette section seront écrites dans les variables Postman avant la définition de l'URL

Cela peut ĂȘtre utile si vous devez remplacer les variables spĂ©cifiĂ©es dans l'URL de la demande.
Soit dit en passant, vous pouvez utiliser les données des variables Postman dans les données fournies, pour cela, vous devez utiliser une conception spéciale

Dans le cas 1, nous avons entrĂ© la valeur obtenue dans une variable, dans le cas 2, nous l'avons utilisĂ©e. Il peut ĂȘtre utilisĂ© non seulement dans le cas suivant, mais aussi dans le cas actuel Ă la prochaine demande. Par exemple, cela peut ĂȘtre nĂ©cessaire si la dĂ©finition de l'objet de la modification ne suit pas l'URL, mais en fonction de la valeur de la variable dans la demande.
Préparation à la course
Et maintenant, exécutez, exécutez le coureur Postman, sélectionnez-y la collection souhaitée et téléchargez le fichier avec les données de test:

Nous servirons l'ensemble suivant:

15 tests sont décrits ici, les étapes 1-11, 13, 15 étant positives avec un résultat de 200 pour une demande POST et les étapes 12, 14 sont négatives avec un résultat de 400. Les informations ne seront pas entrées dans la base de données et par conséquent la section Sortie est vide et la commande est indiquée mettre fin. Cette commande interrompra l'exécution de la séquence et la demande de suppression de «Supprimer» ne sera pas envoyée.
AprÚs les cas 1-11, 13, 15, nous nous souvenons de l'ID qui a été attribué au nouvel objet, puis nous le supprimons.
Nous lançons
Les 15 tests ont réussi, l'image montre le test 14, dans lequel la suppression n'est pas appelée aprÚs le POSTDans les tests 1-11,13,15 aprÚs POST, la suppression de l'objet créé est appelée:

Résumé
- La séquence de demandes de test de l'API est effectuée dans Excel et traitée dans Postman.
- Toutes les données de test sont également rendues dans Excel, il est pratique de les gérer et de les valider. Au moins plus pratique qu'au format JSON.
- La collection Postman est standardisĂ©e et n'a pas besoin d'ĂȘtre amĂ©liorĂ©e lors du test d'API similaires.
Les références
- DépÎt GitHub, il y a Excel et la collection Postman
- En cours de développement, un outil VBA-JSON créé par Tim Hall a été utilisé
Mise à jour du 15/10/20191. Amélioration de la possibilité de générer des fichiers json sans exécuter Excel, placez-le dans le git GenerateAll.cmd, qui exécute le script vb GenerateJsonFiles.vbs. Le script appelé passera par le dossier courant et tous les sous-dossiers et générera des fichiers json
2. RunAll.cmd s'exécute pour exécuter tous les fichiers de données json générés, ainsi que le dossier actuel et tous les sous-dossiers. à cÎté de chacun d'eux sera mis output-report.log avec les résultats de l'exécution.
Maintenant, le vissage sur CI ne devrait pas ĂȘtre un problĂšme. Vous pouvez Ă©galement accĂ©lĂ©rer la gĂ©nĂ©ration json pour git deploy et comparer les donnĂ©es dans excel pour les changements dans les fichiers json.