advanced scripting complex testing workflows postman
En savoir plus sur les scripts avancés Postman pour les flux de travail de test complexes:
Dans ce didacticiel, nous verrons quelques exemples de base d'utilisation de scripts avancés avec Postman, ce qui nous permettrait d'exécuter des flux de travail de test complexes.
Nous discuterons d'exemples tels que le passage de données d'une demande à une autre, le chaînage des demandes, c'est-à-dire le contrôle de l'ordre d'exécution des demandes à l'intérieur de la collection Postman, etc.
comparer deux fichiers ligne par ligne
=> Lisez la série de formation Easy Postman.
Ce que vous apprendrez:
- Passer des données entre les demandes dans Postman
- Demander l'enchaînement dans le facteur
- Chaînage de flux de travail avancé avec Postman
- Conseils importants
- Conclusion
- lecture recommandée
Passer des données entre les demandes dans Postman
La transmission de données entre les demandes est une extension de l'utilisation de différents types de variables Postman. Il n’est pas très rare qu’une demande d’API dépende des données de la réponse de la demande précédente.
Pour créer ce type de capacités à l'aide de Postman, nous pouvons simplement utiliser des variables Postman pour définir la valeur en fonction de la réponse reçue des requêtes précédentes ou précédentes.
Voici un didacticiel vidéo:
Prenons un exemple pour illustrer cela.
Nous utiliserons la même API https://reqres.in avec ses 2 points de terminaison, c'est-à-dire enregistrer l'utilisateur et obtenir les détails de l'utilisateur.
Nous utiliserons la valeur de l'ID utilisateur renvoyé par le point de terminaison d'enregistrement et l'utiliserons pour obtenir la méthode des détails de l'utilisateur. Ceci sera réalisé en stockant la valeur userId dans une variable d'environnement et en utilisant cette variable d'environnement dans la requête conséquente.
Veuillez noter que tous ces scripts feront partie de l'onglet «Tests» de la console du générateur de requêtes Postman.
Voyons à quoi ressemblera le script:
#1) Pour Register user endpoint, la réponse de cette API ressemblera à celle ci-dessous.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Maintenant, pour exécuter la requête GET en utilisant l'ID utilisateur de la réponse, nous devons obtenir la valeur d'id de la réponse ci-dessus. Nous utiliserons le script ci-dessous pour stocker la valeur de l'id de ce JSON dans une variable d'environnement nommée identifiant d'utilisateur.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
Avec le script ci-dessus, la valeur de l'ID sera maintenant stockée dans la variable d'environnement userId et la même chose peut être utilisée lors de l'exécution du point de terminaison de la demande utilisateur GET.
#deux) Ainsi, la demande de l'utilisateur GET ressemblera à celle illustrée ci-dessous.
https://reqres.in/api/users/{(userId}}
Une fois la première requête exécutée, elle récupérera la valeur de l'ID utilisateur à partir de la réponse et mettra à jour la valeur de la variable d'environnement, afin qu'elle puisse être utilisée dans les autres requêtes.
Demander l'enchaînement dans le facteur
Essayons d'abord de comprendre un cas d'utilisation de base du chaînage de requêtes, puis nous explorerons plus en détail comment nous pouvons réaliser le chaînage de requêtes à l'aide de Postman.
Considérez un scénario, du flux de connexion d'un site de commerce électronique et validez l'utilisateur connecté. Désormais, pour qu'un utilisateur puisse se connecter, il doit d'abord être enregistré sur le site et ce n'est qu'alors qu'il pourra se connecter. C'est l'ordre dans lequel le site réel de l'application mobile exécute les appels d'API.
Regardez-le dans une perspective de test d'intégration. Pour un test d'API, nous devons d'abord:
- Appelez le point de terminaison d'enregistrement de l'API pour que l'utilisateur s'inscrive avec succès.
- Appelez ensuite le point de terminaison de connexion et validez les détails de l'utilisateur connecté.
Avec Postman, contrôler l'ordre d'exécution des requêtes n'est pas simple. L'ordre d'exécution par défaut est de haut en bas, c'est-à-dire l'ordre dans lequel les demandes sont déclarées ou créées dans la collection Postman.
Le chaînage des demandes ou l'ordre d'exécution des demandes est modifié à l'aide du script suivant:
postman.setNextRequest({{RequestName}});
Il est important de noter ici que ce script de chaînage de requête doit être ajouté au script de pré-requête ou de post-requête (ou à l'onglet tests du générateur de requêtes Postman) qui déclenche le flux de travail une fois la requête en cours d'exécution terminée.
Ici {{RequestName}} est le nom réel de la demande qui est configuré ou défini dans la collection Postman.
Configurons une collection Postman avec 4 requêtes différentes pour illustrer le concept de chaînage des requêtes. Créez une nouvelle collection avec 4 requêtes (nous utiliserons la même API https://reqres.in pour illustrer cela).
Les 4 demandes de la collection seront les suivantes:
# 1) POST demande d'enregistrement de l'utilisateur ( https://reqres.in/api/register ) avec un exemple de corps JSON avec des champs contenant une adresse e-mail et un mot de passe comme ci-dessous.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#deux) Demande POST avec point de terminaison de connexion ( https://reqres.in/api/login ) avec le même corps de requête que ci-dessus.
# 3) GET demande avec l'ID utilisateur 4.
Le flux de travail que nous allons essayer de réaliser est:
Inscription (POST) -> Détails de l'utilisateur (GET) -> Connexion (POST)
Quelle que soit la configuration de ces demandes, nous créerons un workflow pour les exécuter dans cet ordre.
comment programmer un ordinateur pour les débutants
Veuillez noter que les demandes sont respectivement nommées Enregistrer un utilisateur, Obtenir un utilisateur et Ouvrir une session. Il est important que ces noms de requêtes soient spécifiés exactement et correctement dans le script, sinon le flux de travail restera bloqué.
Voyons à quoi ressemblent les scripts maintenant.
#1) POST demande d'inscription.
postman.setNextRequest('Login User');
#deux) POST demande de connexion.
postman.setNextRequest('Get User');
# 3) GET demande pour obtenir les détails de l'utilisateur. Il est important ici que nous ne souhaitons que rien se passe après cette demande. Si nous n’ajoutons aucun script de workflow ici, la collection Postman est conçue pour reprendre la requête suivante dans son ordre logique ou par défaut.
Ainsi, supposons que l'ordre d'origine des requêtes dans la collection soit Inscrivez-vous, obtenez un utilisateur et Connexion et notre flux de travail est à Obtenir un utilisateur comme le contrôle ne sait pas quelle demande aller ensuite, il ira à la prochaine demande logique qui est Connexion et aboutira finalement à une boucle infinie.
Pour éviter une telle situation, il est utile de mettre fin au flux de travail en utilisant,
postman.setNextRequest(null)
Chaque fois que le script ci-dessus est rencontré lors d'une exécution de collection, l'exécution du flux de travail s'arrête et le programme d'exécution de la collection s'arrête.
Dans les cas où il y a des références circulaires de la demande suivante, le coureur de collecte restera bloqué dans une boucle infinie, provoquant ainsi une fuite de mémoire tôt ou tard.
Veuillez noter que pour exécuter le workflow, vous devrez exécuter la première demande ou la demande de départ manuellement, la publier, elle suivra le workflow tel que défini dans les scripts de post-demande.
En d'autres termes, la première demande qui doit être exécutée dans le cadre du flux de travail doit également être la première requête dans le dossier de collecte ou de collecte, de sorte que l'exécution du flux de travail commence par la première requête qui est également la première requête du flux de travail. .
Chaînage de flux de travail avancé avec Postman
L'exemple ci-dessus dont nous avons discuté est davantage un flux de travail linéaire où nous venons de configurer le flux de travail entre un ensemble de demandes dans la même collection. La même technique peut également être utilisée pour boucler une requête plusieurs fois en fonction de certaines valeurs de réponse ou de variables d'environnement.
Envisagez le test d'intégration pour une application de panier, où vous devez tester un scénario dans lequel un utilisateur recherche un produit et l'ajoute au panier et doit effectuer la même opération 5 fois, c'est-à-dire jusqu'à ce que le panier ait un total de 5 articles, puis enfin la caisse.
Donc, si vous deviez écrire un flux linéaire pour ce type de test, vous auriez répété des demandes individuelles dans la collection et essentiellement la collection aurait 5 demandes de recherche d'un article, et 5 demandes d'ajout de produits au panier et 1 demande à la caisse.
Avec cette fonctionnalité de workflow, nous pouvons éviter de répéter les mêmes demandes dans la collection et utiliser les workflows pour faire une boucle entre les demandes.
Voyons une séquence de flux pour un tel scénario (puis cela peut être utilisé / créé à l'aide du flux de travail Postman avec une combinaison de variables d'environnement).
Il existe également un exemple intéressant d'utilisation du flux de travail Postman pour créer une liste de lecture Spotify. Référer ici pour plus d'informations.
Conseils importants
Vous trouverez ci-dessous quelques conseils importants à retenir lors de la création de flux de travail.
- Lors de l'exécution d'une collection si peu de requêtes n'ont pas postment.setNextRequest, l'exécution se poursuit dans l'ordre de collecte par défaut. Ainsi, il est généralement recommandé d'avoir Postman.setNextRequest dans toutes les requêtes ou dans aucune d'entre elles.
- Lors de l'exécution avec des collections, s'il y a des dossiers dans une collection, Postman.setNextRequest peut être utilisé uniquement pour les demandes appartenant au même dossier, c'est-à-dire que la sélection de demandes ne peut pas aller au-delà du dossier actuel.
- Postman.setNextRequest est la dernière instruction exécutée dans le script de post-requête ou de pré-requête, quels que soient l’endroit et l’ordre dans lequel elle est mentionnée.
Dans le cas de plusieurs valeurs trouvées pour setNextRequest, celle qui est mentionnée dans la dernière est effective.
Conclusion
Dans ce didacticiel, nous avons couvert quelques sujets de script avancés tels que la combinaison de variables d'environnement et locales pour transmettre des données entre différentes requêtes dans le Postman et comment pouvons-nous contrôler l'ordre d'exécution des requêtes à l'aide du chaînage des requêtes Postman qui permet des fonctionnalités avancées telles que la boucle et le branchement.
C'est une fonctionnalité intéressante pour imiter le comportement d'une application de la manière dont elle interagirait avec différentes API et est utile pour écrire des flux de travail de bout en bout à l'aide de tests d'intégration avec des points de terminaison d'API.
=> Consultez le guide de formation Perfect Postman ici.
lecture recommandée
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Téléchargement de l'e-book 'Testing Primer'
- Tutoriel POSTMAN: Test d'API avec POSTMAN
- Test des performances des services Web à l'aide du script LoadRunner VuGen
- Comment utiliser Postman pour tester différents formats d'API?
- Test de charge avec les didacticiels HP LoadRunner
- Différence entre les tests de bureau, client-serveur et Web
- Êtes-vous un testeur nouveau ou avancé? Trouver dans ce jeu de cartes