【问题标题】:JSON Array of Objects Formatting for Postman Test用于邮递员测试的 JSON 对象格式化
【发布时间】:2021-09-25 15:55:52
【问题描述】:

我正在尝试在 Postman 中获取一个请求的结果并将它们放入第二个请求中。第一个请求的格式如下(省略了一些无关的对象):

[
   {
      "lfidField": "11111",
      "featureField": "Logging",
      "keyField": "VP316coUxxxxxxx"
   },
   {
      "lfidField": "11111",
      "featureField": "Premium",
      "keyField": "egg0+4Bkmkzsxxxxxxx"
   }
]

对象更多(总共多达 8 个,但数量可以更改),但 featureField 将始终具有唯一值。我需要得到一个简单的输出:

{
   "Logging": "VP316coUxxxxxxx",
   "Premium": "egg0+4Bkmkzsxxxxxxx"
}

显然,这需要从第一个请求迭代到任意数量的对象。我对此非常陌生,所以我希望有人能提供帮助。

【问题讨论】:

  • 你想要python代码什么的?
  • 需要这个在 Chai.js 格式的 Postman 测试,抱歉我不清楚。

标签: arrays json object postman


【解决方案1】:

在请求 1 的选项卡测试中:

const res = pm.response.json();
let log = "";
let pre = "";
res.filter((item) => {
    if (item.featureField === 'Logging'){
       log = item.keyField;
    }

    if (item.featureField === 'Premium'){
       pre = item.keyField;
    }
});
pm.environment.set("Logging", log);
pm.environment.set("Premium", pre);

在请求 2 的标签正文中:

{
   "Logging": "{{Logging}}",
   "Premium": "{{Premium}}"
}

【讨论】:

  • 我收到响应:“评估预请求脚本时出错:TypeError:无法读取未定义的属性 'json'”。我试过移动一些东西,但没有看到明显的问题。另外,我可以使用“collectionVariables”而不是“环境”来将我的变量包含在集合中而不是环境中吗?无论哪种方式,我都会遇到相同的错误,只是好奇。
  • 哦,对不起,我的错。代码应该在测试选项卡中,而不是预请求选项卡中。我已经更新了答案
  • 做到了!非常感谢你!!!注意:将“环境”更改为“collectionVariables”效果很好。
  • 是的,environmentcollectionVariables 之间没有太大区别。您可以选择其中之一,它会起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-29
  • 2019-10-06
  • 2018-06-14
  • 2017-08-17
  • 2019-05-14
  • 2014-12-29
  • 2020-07-07
相关资源
最近更新 更多