Postman 可以将文件作为路径中的变量吗?

Kri*_*tan 4 postman postman-collection-runner

我有一个邮递员集合,我想将一组三个 API 调用链接在一起,并使用 runner 函数提供数据文件。可以说他们是:

/prepareUpload

/upload

/confirmUpload

并且下一步需要每个的输出。我很高兴地从响应中提取内容并将它们放入准备好下一次调用的变量中,但我似乎陷入困境的是/upload需要一个filetype 参数file,但邮递员似乎不让我设置它到一个变量:

在此处输入图片说明

我尝试导出集合,手动编辑 json 以将其强制为变量并运行它,例如:

<snip>
    {
       "key": "file",
       "contentType": "{{contentType}}",
       "type": "file",
       "src": ["{{fullpath}}"]
    }
  ],
  "options": {
    "formdata": {}
}
Run Code Online (Sandbox Code Playgroud)

where{{contentType}}{{fullpath}}are来自我的数据文件,但它似乎从未真正进行上传。

有谁知道这是否可能?

PDH*_*ide 6

问题:

在邮递员中,如果我们检查 UI,我们会注意到无法将文件路径定义为变量。

在此处输入图片说明

当我们需要从不同系统运行文件时,这看起来像是一个限制

解决方案:

解决方案是破解 collection.json 文件。打开 json 并编辑 formdata src 并将其替换为变量,例如 fire_path :{{fire_path}}

在此处输入图片说明

现在在邮递员:

在预请求中,您可以在下面的代码中设置路径

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

您也可以直接将其保存为环境变量,或者在使用 newman 时使用 --env-var 通过 cmd 传递。

笔记:

将外部工作目录的访问文件设置为 true(右上角的设置)

在此处输入图片说明


Kri*_*tan 1

好的,所以找到了答案,简短的版本是 - Postman 不能做到,但 Newman 可以:

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

设置和运行它需要花费更多的精力,但它确实提供了一个自动化整个过程的解决方案。