【问题标题】:Identify string value in jSON based on FieldName only with array index changes every time仅基于 FieldName 识别 jSON 中的字符串值,每次更改数组索引
【发布时间】:2021-05-25 00:09:45
【问题描述】:

如何从 postman 搜索整个 jSON 输出并仅从 newFields 数组中获取字符串值并仅基于 fieldName 保存在变量中

fieldName": "TX.Sessionval.cost

每次都必须更新测试用例,因为 newField 的数组索引随着新版本的变化而变化,下一次 fieldid 索引将是 /118 或 /129 /234 .. 以此类推

不变的是 fieldName:它保持不变

[
  {
   "Fieldid": "Fieldid/112",
    "fieldName": "TX.Sessionval.cost",
    "stringval": "jklah-dw-4c8d-8320-das313s3ASsda|000725N8WuUrfwAS7alP|banker_name"
  }
]

我目前的邮递员测试仅限于字段 id 并将其保存到变量中。

postman.setEnvironmentVariable("Stdid", jsonData.newFields[112].stringValue) 

【问题讨论】:

  • 什么会改变?
  • 我不明白你的问题。根据您的问题,这种情况的结果应该是什么?
  • Fieldid": "Fieldid/112 只是值变化,而 stringval 中的 bankern_name(如前所述)fieldid 将是 /118 或 /129 /234 .. 以此类推
  • jsonData.newFields[112].stringvalue ,那么这个 lcoator 有什么问题?
  • @PDHide @pavelsaman :定位器没有问题,效果很好。但我的问题与每次从 newFields[112]、newFields[128] 等等的位置获取变化有关.. 如何仅基于在整个 JSON 中保持不变的 fieldName 保存字符串值

标签: arrays json arraylist postman postman-testcase


【解决方案1】:
pm.environment.set("stdid",jsonData.newFields.filter((a)=>a.fieldName==="TX.Sessionval.cost")[0].stringval)

使用javascrpt数组的过滤方法

【讨论】:

  • 谢谢,[0]是什么意思,让我试试这个更新
  • 过滤器返回一个数组,作为“fieldName”:“TX.Sessionval.cost”,它是唯一的,它将返回一个包含 1 个元素的数组,我们将 taht 元素返回为 [0]
  • 它适用于过滤谢谢,如何将该字符串值仅保存到变量中
  • pm.environment.set("stdid" 将其保存到变量中,您可以按原样使用代码,这是存储环境变量的新方法
  • 这是最干净的选择
猜你喜欢
  • 2019-04-25
  • 1970-01-01
  • 2021-10-13
  • 2019-07-18
  • 1970-01-01
  • 2019-04-01
  • 1970-01-01
  • 2021-11-12
  • 1970-01-01
相关资源
最近更新 更多