在对 Ready API / SOAP UI 中的参数的响应中传输同级元素
transfer a sibling element in a reponse to a parameter in Ready API / SOAP UI
我有一个 REST 端点,returns 有这样的响应
[
{
"id": "dbfff519-e8f6-4db3-9e26-a4e9014dc360",
"code": "123456789012345678901234567890123456789012345678901234567890",
"name": "client-code-with-character-length-sixty",
},
{
"id": "a673fb54-3503-4996-ba9b-a4e9014dc3ea",
"code": "18MTH",
"name": "18 Month",
},
{
"id": "60b781e3-4515-40f5-81ee-a4e9014dc400",
"code": "2periods",
"name": "I Have 2 Periods",
}...
等等
我希望能够检索 ID,例如,code="2periods" UI 可以使用 ResponseAsxml(使用 xpath)或 Response with JSONPath 进行检索。如果我使用前者,我已经设法获得以下几乎找回我的 ID
//Response[1]/e[code='2periods']/id
但这看起来像这样
<id>0bc4aa5f-f8ab-4efe-b788-a4e9014dc45f</id>
而且我不知道如何删除开始和结束标记,id 必须只是 GUID。
我不知道如何在 JSONPath 中做类似的事情 - 我只设法得到类似
的东西
$[3].id
可以工作,但在测试环境中不能保证实体的顺序。
对于 ResponseAsXml
使用 XPath 仅获取没有 <id>
标记的 id 值,只需将 /text()
添加到您的实际表达式中:
//Response[1]/e[code='2periods']/id/text()
如果你想用 Response
属性 和 JSONPath 做同样的事情,试试:
$..[?(@.['code']=='2periods')].id[0]
希望对您有所帮助,
我有一个 REST 端点,returns 有这样的响应
[
{
"id": "dbfff519-e8f6-4db3-9e26-a4e9014dc360",
"code": "123456789012345678901234567890123456789012345678901234567890",
"name": "client-code-with-character-length-sixty",
},
{
"id": "a673fb54-3503-4996-ba9b-a4e9014dc3ea",
"code": "18MTH",
"name": "18 Month",
},
{
"id": "60b781e3-4515-40f5-81ee-a4e9014dc400",
"code": "2periods",
"name": "I Have 2 Periods",
}...
等等
我希望能够检索 ID,例如,code="2periods" UI 可以使用 ResponseAsxml(使用 xpath)或 Response with JSONPath 进行检索。如果我使用前者,我已经设法获得以下几乎找回我的 ID
//Response[1]/e[code='2periods']/id
但这看起来像这样
<id>0bc4aa5f-f8ab-4efe-b788-a4e9014dc45f</id>
而且我不知道如何删除开始和结束标记,id 必须只是 GUID。
我不知道如何在 JSONPath 中做类似的事情 - 我只设法得到类似
的东西$[3].id
可以工作,但在测试环境中不能保证实体的顺序。
对于 ResponseAsXml
使用 XPath 仅获取没有 <id>
标记的 id 值,只需将 /text()
添加到您的实际表达式中:
//Response[1]/e[code='2periods']/id/text()
如果你想用 Response
属性 和 JSONPath 做同样的事情,试试:
$..[?(@.['code']=='2periods')].id[0]
希望对您有所帮助,