You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Postman文件路径指向Azure仓库并解决Newman报错

解决Azure Pipeline中Newman运行Postman集合时的文件找不到问题

问题根源

Postman集合中直接使用了Azure Pipeline的$(System.DefaultWorkingDirectory)变量,但Newman CLI无法解析这个Pipeline专属变量,会将其当作路径字符串的一部分,导致无法定位到实际文件。

解决方案

方案1:使用Postman环境变量传递路径

  1. 修改Postman集合中的文件路径:
    将集合里的src值替换为Postman环境变量,示例:
    "formdata": [
        {
            "key": "gamePresetFormFile",
            "type": "file",
            "src": "{{SYSTEM_DEFAULT_WORKING_DIR}}/test/AxiomAdministratorCore.DataGeneration.Tests/DataGeneration.Tests/GameInstall/11016_50300_HTML5Desktop-FeatureSlot-BurningDesire.zip"
        },
        {
            "key": "gameContentFormFile",
            "type": "file",
            "src": "{{SYSTEM_DEFAULT_WORKING_DIR}}/test/AxiomAdministratorCore.DataGeneration.Tests/DataGeneration.Tests/GameInstall/BurningDesire.zip"
        }
    ]
    
  2. 在Azure Pipeline的Newman命令中传入环境变量值:
    添加--env-var参数,将Pipeline变量的值传递给Postman环境变量:
    "C:\Users\Build\AppData\Roaming\npm\newman" run $(Release.PrimaryArtifactSourceAlias)\test\CoreDataGeneration.Tests\DataGeneration.Tests\PostMan\GameInstalls.postman_collection.json -e $(Release.PrimaryArtifactSourceAlias)\test\Core.DataGeneration.Tests\DataGeneration.Tests\PostMan\Axiom-Test.postman_environment.json --env-var "SYSTEM_DEFAULT_WORKING_DIR=$(System.DefaultWorkingDirectory)" -r cli,junitfull --reporter-junitfull-export $(Release.PrimaryArtifactSourceAlias)\report.xml
    

方案2:在Pipeline中预替换集合文件里的变量

使用PowerShell命令先替换集合中的$(System.DefaultWorkingDirectory)为实际路径,再运行Newman:

  1. 添加PowerShell步骤:
    $collectionPath = "$(Release.PrimaryArtifactSourceAlias)\test\CoreDataGeneration.Tests\DataGeneration.Tests\PostMan\GameInstalls.postman_collection.json"
    (Get-Content $collectionPath) -replace '\$\(System.DefaultWorkingDirectory\)', "$(System.DefaultWorkingDirectory)" | Set-Content $collectionPath
    
  2. 执行原来的Newman命令。

方案3:使用相对路径(推荐,如果文件与集合路径关系固定)

如果测试文件和Postman集合的相对位置固定,直接使用相对路径。比如集合位于test/CoreDataGeneration.Tests/DataGeneration.Tests/PostMan/,文件位于test/AxiomAdministratorCore.DataGeneration.Tests/DataGeneration.Tests/GameInstall/,则相对路径示例:

"formdata": [
    {
        "key": "gamePresetFormFile",
        "type": "file",
        "src": "../../../../AxiomAdministratorCore.DataGeneration.Tests/DataGeneration.Tests/GameInstall/11016_50300_HTML5Desktop-FeatureSlot-BurningDesire.zip"
    },
    {
        "key": "gameContentFormFile",
        "type": "file",
        "src": "../../../../AxiomAdministratorCore.DataGeneration.Tests/DataGeneration.Tests/GameInstall/BurningDesire.zip"
    }
]

Newman运行时会基于集合文件所在目录解析相对路径。

额外验证步骤

在Pipeline中添加命令行步骤,验证文件是否存在:

dir $(System.DefaultWorkingDirectory)/test/AxiomAdministratorCore.DataGeneration.Tests/DataGeneration.Tests/GameInstall/

如果输出中没有目标文件,说明文件未被正确下载到Pipeline工作目录,需检查Artifact的发布或拉取配置。

内容的提问来源于stack exchange,提问作者Shanil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:45:31