Test des API Ă  l'aide de Postman et Excel

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 forme

2. 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 extraite

H - 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édente

PC - 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 POST

Dans 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


  1. DépÎt GitHub, il y a Excel et la collection Postman
  2. En cours de développement, un outil VBA-JSON créé par Tim Hall a été utilisé


Mise Ă  jour du 15/10/2019

1. 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.

Source: https://habr.com/ru/post/fr467127/


All Articles