【问题标题】:Calling a Variable from a JSON File for use in Postman Tests从 JSON 文件调用变量以用于 Postman 测试
【发布时间】:2022-03-08 16:29:41
【问题描述】:

我的测试网址如下所示:

{{baseURL}}/api/v1/{{testName}}

当我在运行器中运行此测试时,它不会拉入 testName 变量。

我的 json 数据文件如下所示:

[
  {
    "testName": "12345"
    {
      "test1": "1234",
      "test2": "2468"
    },
    {
      "test1": "1357",
      "test2": "9876"
    },
  "testName": "2468"
    {
      "test1": "1234",
      "test2": "2468"
    },
    {
      "test1": "1357",
      "test2": "9876"
    }
  }
]

但这不起作用。

所以我试图从运行器中的.json 文件中调用变量,然后继续根据请求中的实际数据检查预期数据。然后当完成一个测试后,将继续进行下一个测试。

【问题讨论】:

  • 这类似于这个问题:stackoverflow.com/questions/64260593/…;但是,我的问题与使用 JSON 文件有关。
  • pm.iterationData.get("myVariable"); 将帮助您从 csv/json 文件中获取价值。然后将其设置为全局/环境变量。
  • 谢谢@lucas-nguyen-17,但我如何将它写在我的.json 文件中?这就是我感到困惑的地方。
  • 您可以在收藏/文件夹的预请求中写入。还没有测试。更多信息在这里learning.postman.com/docs/running-collections/…

标签: json get postman postman-collection-runner


【解决方案1】:

数据文件的结构就像这个简单的例子:

[
    {
        "testName": "12345"
    },
    {
        "testName": "2468"
    }
]

在 Collection Runner 中使用时,URL 中的 {{testName}} 变量将被解析为对象中的值。

JSON 文件中数组中的每个对象都是一个迭代。所以在第一次运行时,它会选择12345,而在第二次运行中,它会选择2468

如果您需要在迭代中检查文件中的预期数据,则结构需要如下所示:

[
    {
        "testName": "12345",
        "test1": "1234",
        "test2": "2468"
    },
    {
        "testName": "2468",
        "test1": "0987",
        "test2": "4567"
    }
]

我不知道你在这里的全部用例,所以这只是一个例子。

【讨论】:

  • 谢谢丹尼。我遇到的问题是,在上面的示例中,第一个变量 12345 返回了多个数据。然后第二个将是相同的,等等。我需要 Postman 调用每个变量 testName 并进行匹配数据对象的测试。即致电testName1 > 进行测试;致电testName2 > 进行测试等
  • 当我通过 Postman 运行它时,我收到此错误:JSONError: No data, empty input at 1:1^ where my URL is http://example.com/api/v1/%7B%7BtestName%7D%7D
  • 没有更多上下文,这对我来说没什么意义,除了它看起来像是对{{testName}} 变量进行编码的 URL。数据文件只适用于跑步者,所以除非你有另一个同名的变量,设置在不同的范围内,否则它不会解析任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
  • 2020-08-15
  • 2019-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-06
相关资源
最近更新 更多