web-dev-qa-db-fra.com

Créer un champ de texte de nom dynamique dans Postman

J'utilise Postman pour effectuer des appels REST API vers un serveur. Je veux rendre le champ de nom dynamique afin de pouvoir exécuter la demande avec un nom unique à chaque fois .

{
  "location":
  {
    "name": "Testuser2", // this should be unique, eg. Testuser3, Testuser4, etc
    "branding_domain_id": "52f9f8e2-72b7-0029-2dfa-84729e59dfee",
    "parent_id": "52f9f8e2-731f-b2e1-2dfa-e901218d03d9"
  }

}
20
manoj

Dans Postman, vous souhaitez utiliser Variables dynamiques .

Le JSON que vous publiez ressemblerait à ceci:

{
  "location":
  {
    "name": "{{$guid}}", 
    "branding_domain_id": "52f9f8e2-72b7-0029-2dfa-84729e59dfee",
    "parent_id": "52f9f8e2-731f-b2e1-2dfa-e901218d03d9"
  }

}

Notez que cela vous donnera un GUID (vous avez également la possibilité d'utiliser des entiers ou des horodatages) et je ne connais pas actuellement un moyen d'injecter des chaînes (par exemple, à partir d'un fichier de test ou un utilitaire de génération de données).

23
MisterJames

Juste mes 5 cents pour cette affaire. Lors de l'utilisation de randomInt, il est toujours possible que le nombre soit éventuellement présent dans la base de données, ce qui peut provoquer des problèmes. La solution (pour moi au moins) est d'utiliser à la place $ timestamp.

Exemple:

{
    "username": "test{{$timestamp}}",
    "password": "test"
}
13
Goran.it

Dans Postman, vous pouvez passer un entier aléatoire qui varie de 0 à 1000, dans vos données, vous pouvez l'utiliser comme

{
  "location":
  {
    "name": "Testuser{{$randomInt}}",
    "branding_domain_id": "52f9f8e2-72b7-0029-2dfa-84729e59dfee",
    "parent_id": "52f9f8e2-731f-b2e1-2dfa-e901218d03d9"
  }

}
11
Pratik Charwad

Pour tous ceux qui sont sur le point de me downvote ce post a été fait avant la discussion dans les commentaires avec l'OP (voir ci-dessous). Je le laisse en place donc le commentaire du PO qui a finalement décrit ce dont il a besoin n'est pas supprimé de la question.


D'après ce que je comprends que vous recherchez, voici une solution de base. Cela suppose que:

  • vous développez une sorte de script où vous avez besoin de données de test
  • le champ name doit être unique à chaque exécution

Si votre question était plus précise, je serais en mesure de vous donner une réponse plus précise, mais c'est le mieux que je puisse faire à partir de ce qui existe actuellement.


var counter = location.hash ? parseInt(location.hash.slice(1)) : 1; // get a unique counter from the URL
var unique_name = 'Testuser' + counter; // create a unique name
location.hash = ++counter; // increase the counter by 1

Vous pouvez changer de force le compteur en regardant dans la barre d'adresse et en changeant l'URL de se terminer par #1 à #5, etc.

Vous pouvez ensuite utiliser la variable name lorsque vous construisez votre objet:

var location = {
    name: unique_name,
    branding_domain_id: 'however-you-currently-get-it',
    parent_id: 'however-you-currently-get-it'
};
1
Joe

Ajoutez le texte ci-dessous en pré-requis:

var myUUID = require ('uuid'). v4 (); pm.environment.set ("myUUID", myUUID);

et utilisez myUUID où vous voulez comme

nom: "{{myUUID}}"

Il va générer un aléatoire unique GUID pour chaque demande

0
Chhavi Beri