SOAPUI - 使用 Groovy 脚本解析不同的 JSON 响应对象以获取相同的子节点值
SOAPUI - Parse different JSON Response objects to fetch the same child node values using Groovy Scripting
我正在使用 SOAPUI 实现 REST API 的自动化。我有 2 种不同的资源,下面是 Response JSON 格式。
根元素各不相同,但两个响应 json 的状态块保持相同。在 Rest API POST 调用之后,我有一个 Groovy 脚本来验证响应(如果 "code" == "00")
目标:使用 Groovy 脚本,我必须解析 JSON 并检索 "code" 节点值,而不考虑根元素。
响应(JSON) 格式:
{
"resouurce_1_response":
{
"status":
{
"code": "00"
}
}
}
{
"resource_2_response":
{
"status":
{
"code": "00"
}
}
}
一个快速的方法是:
def json1 = '{ "resouurce_1_response": { "status": { "code": "00" } } }'
def json2 = '{ "resource_2_response": { "status": { "code": "00" } } }'
import groovy.json.*
def slurper = new JsonSlurper()
assert slurper.parseText(json1).find().value.status.code == '00'
assert slurper.parseText(json2).find().value.status.code == '00'
当然,如果您的实际 Json 比您显示的更复杂,您可能需要做一些不同的事情(递归遍历地图?)
我正在使用 SOAPUI 实现 REST API 的自动化。我有 2 种不同的资源,下面是 Response JSON 格式。 根元素各不相同,但两个响应 json 的状态块保持相同。在 Rest API POST 调用之后,我有一个 Groovy 脚本来验证响应(如果 "code" == "00")
目标:使用 Groovy 脚本,我必须解析 JSON 并检索 "code" 节点值,而不考虑根元素。
响应(JSON) 格式:
{
"resouurce_1_response":
{
"status":
{
"code": "00"
}
}
}
{
"resource_2_response":
{
"status":
{
"code": "00"
}
}
}
一个快速的方法是:
def json1 = '{ "resouurce_1_response": { "status": { "code": "00" } } }'
def json2 = '{ "resource_2_response": { "status": { "code": "00" } } }'
import groovy.json.*
def slurper = new JsonSlurper()
assert slurper.parseText(json1).find().value.status.code == '00'
assert slurper.parseText(json2).find().value.status.code == '00'
当然,如果您的实际 Json 比您显示的更复杂,您可能需要做一些不同的事情(递归遍历地图?)