【问题标题】:Postman / Newman and uploading files from Azure Blob instead of local filesPostman / Newman 并从 Azure Blob 上传文件而不是本地文件
【发布时间】:2021-11-29 11:47:05
【问题描述】:

我正在尝试将我的邮递员脚本添加到 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"
                    }
                ]
            },

以上是收集文件的摘录。

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

【问题讨论】:

    标签: postman postman-newman


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 2021-05-29
      • 2019-01-20
      • 2021-03-05
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      相关资源
      最近更新 更多