【问题标题】:How to pass the Azure DevOps variables into Postman tests?如何将 Azure DevOps 变量传递给 Postman 测试?
【发布时间】:2021-02-18 11:52:12
【问题描述】:

我有一个以 json 格式导出并集成到 Azure DevOps 管道中的 Postman 集合。它目前使用从 Postman 环境中导出为 json 的 URL 变量。

我需要在 Azure DevOps 中设置 URL 变量并在我的 Postman 测试中使用它。

我已经在命令行任务中设置了变量来运行测试(见截图)。

问题 1. 我不确定这是否是设置此变量的正确位置。

问题 2。如何将 Azure 变量传递给 Postman 测试?

【问题讨论】:

  • 嗨@Pockemon。这张票有更新吗?如果答案可以给你一些帮助,请随时告诉我。只是提醒this

标签: variables testing azure-devops environment-variables postman


【解决方案1】:

除了使用脚本运行邮递员测试,我还建议你使用这个开箱即用的任务:Newman the cli Companion for Postman from extension: Newman the cli Companion for Postman

您可以在这个任务中直接设置全局变量。

Yaml 示例:

steps:
- task: NewmanPostman@4
  displayName: 'Newman - Postman'
  inputs:
    collectionFileSource: 'test1.postman_collection.json'
    environment: 'test.postman_environment.json'
    globalVars: 'aa=azuretest23'
    ignoreRedirect: false
    bail: false
    sslInsecure: false
    htmlExtraDarkTheme: false
    htmlExtraLogs: false
    htmlExtraTestPaging: false

您可以直接硬编码全局变量,也可以使用管道变量(例如aa=$(var)

使用此任务可以让您更轻松地设置环境变量和全局变量。

更新:

这是我的例子:

在发布管道中:

您可以在 Postman 中测试相同的设置并检查它是否可以工作。

在邮递员中:

testurlglobal variableversionenvironment variable

【讨论】:

  • 凯文,请看我的回复。我无法在评论中添加屏幕截图
  • 嗨@Pockemon。由于此错误消息不包含很多详细信息,因此我无法确定此问题的根本原因。你能成功执行 PostMan 中的 API 吗?我已经更新了我的答案并分享了有关这些步骤的更多详细信息。请检查它是否能给你一些帮助。
  • 另一方面,newman包的版本是5.1.2。 npm install -g newman@5.1.2你可以尝试安装这个版本。如果可能,您还可以在 Microsoft 托管代理(例如 windows-2019)中运行发布阶段并检查它是否可以工作。
  • Kevin,我是 azure 新手。您能否分享有关“newman-postman”任务的管道配置的完整详细信息?
  • 是否可以将 Azure DevOps 中的全局变量值集赋予 postman 集合中的键值?我的设置是在 Azure DevOps 库中将密码作为变量。然后,我使用该变量通过 NemanPostman@4 任务在 yml 中设置 globalvar 的值。然后我想将该 globalvar 值作为我的邮递员集合中的键值。我需要它来获得令牌以进行进一步测试。我在 Azure 中声明了 AAD 密码,在 yml 中我设置了 globalvars: 'Password=$(AAD-password)' 并在集合中我使用 {{Password}} 作为值来为键提供值。
【解决方案2】:

Environment Variables 是一个正确的位置,如果你在你的脚本中使用$env:url 之类的语法(例如对于 powershell)并且我发现这是不可能的。请查看here

但是你可以像 herehere 那样传递变量

newman run -g environment.json --global-var "foo=$(YOURVARIABLE)"

所以你应该去变量选项卡并在那里定义这个变量并像上面一样使用粘贴网址而不是$(YOURVARIABLE)

【讨论】:

  • 非常感谢。所以如果我对环境使用-e,我应该使用--env-var而不是--global-var吗? newman run MyCollection.json -e MyEnvironment.json --env-var "url=$(url)" --reporters cli,junit --reporter-junit-export Results/junitReport.xml跨度>
猜你喜欢
  • 1970-01-01
  • 2022-06-29
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
  • 2020-09-27
  • 1970-01-01
相关资源
最近更新 更多