3
votes

Comment modifier la valeur de la variable actuelle Postman dans la portée de la collection?

J'ai la variable "TOKEN" dans ma portée de collection . J'essaie de définir la valeur à l'aide de scripts de tests lorsque je fais une demande. Mais la variable n'a pas changé.

Donc, j'essaye d'utiliser la variable portée d'environnement . Et ça marche.

Pourquoi cela ne fonctionne-t-il pas dans la portée de la collection ? J'avais lu ici et bien le comprendre.

Voici quelques captures d'écran:

1. Tout d'abord, j'appelle le point de terminaison de connexion.

 Appeler la connexion

Voici le résultat de la console. Rien de mal.

 Résultat de la console

Jusqu'à ce que j'essaie d'obtenir tous les points de terminaison des utilisateurs qui ont besoin d'un jeton dans l'en-tête de la demande. Le statut est 401 car le jeton est nul. Si le jeton n'est pas nul, il renverra 200:

 Get Users Endpoint

Cela fonctionne gracieusement lorsque j'ajoute la variable "TOKEN" à l'environnement. Passer à nouveau à Aucun environnement entraînera le code d'état 401:

 Résultat


4 commentaires

Veuillez ajouter le code que vous utilisez et quelques captures d'écran pour expliquer ce que vous faites. Actuellement, il dit "J'ai ce truc que je ne vous montre pas et j'ai ce code qui fait quelque chose que vous ne voyez pas" :) Vous devez fournir plus de contexte pour que les gens puissent vous aider.


D'accord, je l'avais ajouté récemment. @DannyDainton


Essayez-vous de définir par programme la variable au niveau de la collection? Vous ne pourrez que les lire ou les obtenir et ne pas les écrire ni les définir.


@DannyDainton D'accord. Je pense qu'il est bon d'expliquer dans la page du facteur à ce sujet.


4 Réponses :


0
votes

@Danny Dainton a raison, les variables de collection ne sont pas modifiables via des scripts.

Source: https://learning.getpostman.com/ docs / postman / environnements_and_globals / variables / # variable-scopes

Définition d'un environnement ou d'une variable globale dans un script: * Pour définir un variable dans un script, utilisez la méthode pm.environment.set () ou pm.globals.set () selon la portée souhaitée. La méthode requiert la clé et la valeur de la variable comme paramètres pour définir la variable. Lorsque vous envoyez la demande, le script sera évalué et la valeur sera stocké sous forme de variable. Notez que la définition d'une variable de collection est un peu différent et peut être fait en éditant la collection détails.

Variables de collection

https://learning.getpostman.com/ docs / postman / environnements_and_globals / variables / # defining-collection-variables

Les variables de collection peuvent être définies en modifiant les détails de la collection. Cliquez sur les points de suspension (...) à côté du nom de la collection, puis sélectionnez «Modifier» pour ouvrez le modal EDIT COLLECTION. Sélectionnez l'onglet Variables pour ajouter et modifier les variables de collection. Vous pouvez également définir des variables de collection lors de la création de la collection.

Vous ne pouvez donc modifier la variable de collection que manuellement .


0 commentaires

1
votes

Désactivez les Valeurs de variable persistantes automatiques dans les paramètres du facteur.

image


1 commentaires

Ce n'est pas exactement une réponse à la question mais m'a quand même été utile. :) Cela résout le problème avec pm.environment.set définissant à la fois les valeurs des variables actuelles et initiales .



1
votes

Il semble que vous ne pouvez définir des variables d'environnement que lorsqu'un environnement est sélectionné: https://learning.postman.com/docs/postman/scripts/postman-sandbox/#environment-and-global-variables

 entrez la description de l'image ici


0 commentaires

0
votes

Cela peut être nouveau depuis que cette question a été publiée, mais pour quiconque la trouve, vous pouvez définir des variables de collection en utilisant: pm.collectionVariables.set (clé, valeur) Voir: https: // apprentissage .postman.com / docs / postman / variables-et-environnements / variables / # define-variables-in-scripts


0 commentaires