1
votes

Postman peut-il prendre un fichier comme variable à partir d'un chemin?

J'ai une collection de facteur, avec un ensemble de trois appels d'API que je voudrais enchaîner et alimenter avec un fichier de données en utilisant la fonction runner. Disons qu'ils sont:

/prepareUpload

/upload

/confirmUpload

et la sortie de chacun est nécessaire pour l'étape suivante. Je tire heureusement des choses sur les réponses et de les mettre en variables prêt pour le prochain appel, mais le bit me semble être tomber sur est le /upload a besoin d' un file paramètre de type file , mais Postman ne semble pas laissez-moi le définir sur une variable:

entrez la description de l'image ici

J'ai essayé d'exporter la collection, d'éditer manuellement le json pour le forcer à une variable et de l'exécuter, donc quelque chose comme:

<snip>
    {
       "key": "file",
       "contentType": "{{contentType}}",
       "type": "file",
       "src": ["{{fullpath}}"]
    }
  ],
  "options": {
    "formdata": {}
}

{{contentType}} et {{fullpath}} proviennent de mon fichier de données, mais il ne semble jamais effectuer le téléchargement.

Est-ce que quelqu'un sait si cela est possible?


0 commentaires

3 Réponses :


1
votes

Il n'est pas possible de lire les fichiers locaux avec Postman (il y a au moins deux problèmes concernant cela dans le tracker sur github: 798 , 7210 )

Une solution de contournement serait de configurer un serveur qui fournit le fichier, afin que vous puissiez obtenir les données via une demande à ce serveur.


1 commentaires

Merci, je pense que mon cas d'utilisation est légèrement différent. Je peux demander au facteur de lire le fichier de données en utilisant un coureur ( blog.postman.com/… ) mais il le fait attacher un fichier là où il tombe



0
votes

Ok, alors j'ai trouvé la réponse à cela, et la version courte est - Postman ne peut pas le faire, mais Newman peut:

https://github.com/postmanlabs/newman#file-uploads

C'est un peu plus d'efforts pour le configurer et le faire fonctionner, mais cela fournit une solution pour automatiser l'ensemble du processus.


0 commentaires

1
votes

Problème:

Dans postman, si nous vérifions l'interface utilisateur, nous remarquons qu'il n'y a aucun moyen de définir le chemin du fichier comme variable.

entrez la description de l'image ici

Cela ressemble à une limitation lorsque nous devons exécuter un fichier à partir de différents systèmes

Solution:

La solution est de pirater le fichier collection.json. Ouvrez le json et éditez le formdata src et remplacez-le par une variable, disons fire_path donc: {{fire_path}}

entrez la description de l'image ici

Maintenant dans Postman:

en pré-demande, vous pouvez ci-dessous le code pour définir le chemin

pm.environment.set ("chemin_fichier", "C: /Users/guest/Desktop/1.png")

Vous pouvez également l'enregistrer en tant que variable d'environnement directement ou passer par cmd en utilisant --env-var lors de l'utilisation de newman.

Remarque:

définir le fichier d'accès à partir du répertoire de travail extérieur sur true (paramètres du coin supérieur droit)

entrez la description de l'image ici


0 commentaires