0

我正在尝试将我的邮递员脚本添加到 azure 管道。为此,我正在尝试纽曼。我使用邮递员 api 来获取最新的集合以及正确的环境。使用我创建的 uid 和 api 密钥。到目前为止一切都很好。但是,我的收藏包括一些进行文件上传的调用。在邮递员中,我通过简单地选择调用主体、选择表单数据并选择位于默认“邮递员文件”文件夹中的示例文件来测试这些。

在我的本地机器上测试 newman 时,我需要将我要用于上传的所有示例文件复制到我运行 newman 的同一文件夹中。

这个解决方案对我来说不太合适,因为我使用邮递员 api 来获取正确的集合和环境。我还需要能够从其他远程位置(例如 azure blob 存储)获取这些文件

我找到了一些指南,描述了如何编辑邮递员集合文件以将“src”指向远程文件。但是我找不到任何直接在邮递员中执行此操作的方法,这样当 newman 从 api 获取集合文件时,正确的位置已经在正确的位置。

"request": {
            "method": "POST",
            "header": [],
            "body": {
                "mode": "formdata",
                "formdata": [
                    {
                        "key": "files",
                        "type": "file",
                        "src": "sample.pdf"
                    }
                ]
            },

以上是收集文件的摘录。

有没有办法可以直接在邮递员中进行更改?

4

1 回答 1

0

Postman 脚本可以访问其工作目录中的文件。我们通过在 git repo 的文件夹中添加图片、将脚本下载到该文件夹​​并引用该文件来解决此问题。这是我们在构建管道中使用的任务:

- task: CopyFiles@2
  inputs:
    SourceFolder: 
    Contents: |
      **/PostmanTests/test-image.jpg
    TargetFolder: '$(Build.ArtifactStagingDirectory)/postman'
    OverWrite: true
    flattenFolders: true

然后,您可以使用邮递员 API 将文件下载到上面创建的工件文件夹中。

这里的一个技巧是我们使用了一个“容器”文件。我们用 {{file}} 替换了文件名(而不是 example.pdf 之类的东西),并在环境文件中传递了实际名称。请参阅下面的 JSON:

"body": {
        "mode": "formdata",
        "formdata": [
            {
                "key": "upload",
                "type": "file",
                "src": "{{file}}"
            }
        ]
    }

然后环境文件将具有文件的名称,在本例中为 test-image.jpg。

于 2021-10-28T08:08:28.520 回答