在空手道中遍历传递给特征文件的 JSON 对象的最佳方法
Best Way to Iterate Through JSON Object Passed to Feature File in Karate
我有一个像 {"id1": 123, "id2": 234}
这样的 JSON 对象,我将它传递给一个特征文件,以便为一系列 API 请求插入上面的每个值,例如:
And path `/somePath/${id1}/detail`
And request {"id": "#(id1)", "action": "Reassign"}
我的第一个想法是使用 Scenario Outline
,但无法弄清楚如何在 Examples
table 中设置 ID,以便正确读取它们。然后我查看了文档,似乎当我像这样传递一个 JSON 对象时,它应该自动 运行 每个值的场景。问题是,不确定如何设置变量,因为密钥每次都会更改。
或者也许有更好的方法来做到这一点我没有看到?
为了使其正常工作,您的密钥必须相同。在这种情况下,您实际上有一个具有两个属性(id1、id2)的 JSON 对象。相反,你想要的是两个对象:
[
{ "id": 123, "path": "/mydir1/" },
{ "id": 456, "path": "/mydir2/" }
]
另请注意,它必须是您传入的 list/array 个 json 个对象,而不是像您拥有的那样只有一个 blob。如果每个对象都包含路径名,则应将其添加到对象本身。
但是,请再次注意 list/array 中的每个对象都具有相同的结构,只是具有不同的数据。然后,您可以在脚本中使用常见的 属性 名称。
我有一个像 {"id1": 123, "id2": 234}
这样的 JSON 对象,我将它传递给一个特征文件,以便为一系列 API 请求插入上面的每个值,例如:
And path `/somePath/${id1}/detail`
And request {"id": "#(id1)", "action": "Reassign"}
我的第一个想法是使用 Scenario Outline
,但无法弄清楚如何在 Examples
table 中设置 ID,以便正确读取它们。然后我查看了文档,似乎当我像这样传递一个 JSON 对象时,它应该自动 运行 每个值的场景。问题是,不确定如何设置变量,因为密钥每次都会更改。
或者也许有更好的方法来做到这一点我没有看到?
为了使其正常工作,您的密钥必须相同。在这种情况下,您实际上有一个具有两个属性(id1、id2)的 JSON 对象。相反,你想要的是两个对象:
[
{ "id": 123, "path": "/mydir1/" },
{ "id": 456, "path": "/mydir2/" }
]
另请注意,它必须是您传入的 list/array 个 json 个对象,而不是像您拥有的那样只有一个 blob。如果每个对象都包含路径名,则应将其添加到对象本身。
但是,请再次注意 list/array 中的每个对象都具有相同的结构,只是具有不同的数据。然后,您可以在脚本中使用常见的 属性 名称。