在 SoapUI Groovy 步骤中使用 xpath 检索值
Retrieving value using xpath in SoapUI Groovy step
我需要将操作 GET ISM 的输出传输到另一个操作 SET ESM 的输入。
我想在这个标签中恢复 talon=603090100042390(这是 GET ISM 的响应):
<privateUserId>603090100042390@xxxxxxxxxxxxxx</privateUserId>
我使用这个脚本:
groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
holder = groovyUtils.getXmlHolder("GET ISM#Response")
privateUserId = holder.getNodeValue( "//privateUserId" )
assert privateUserId != null
assert privateUserId.length() > 0
latlonNode = groovyUtils.getXmlHolder(privateUserId)
latlon = latlonNode.getNodeValue("//privateUserId")
log.info(latlon)
assert latlon != null
context["latlon"] = latlon
爪是 SET ESM 的输入。
我有这个错误:
Assertion failed: assert privateUserId != null | | null false Assertion failed: assert privateUserId != null | | null false error at line: 4
但是我不知道为什么第4行的问题
我想解决这个问题。谢谢
从你的问题来看,不清楚响应中是否有任何名称空间。可能这可能是获得 null 的原因之一。
您可以使用 Script Assertion
作为第一步。
assert context.response, 'Response is empty or null'
def pId = new XmlSlurper().parseText(context.response).'**'.find{it.name() == 'privateUserId'}.text()
log.info "privateUserId value : $pId"
assert pId, "Value of privateUserId is empty or null"
def userId = pId?.substring(0, pId?.indexOf('@'))
context.testCase.setPropertyValue('USERID', userId)
在下一步中,如果需要提取用户 ID,请使用 ${#TestCase#USERID}
我需要将操作 GET ISM 的输出传输到另一个操作 SET ESM 的输入。
我想在这个标签中恢复 talon=603090100042390(这是 GET ISM 的响应):
<privateUserId>603090100042390@xxxxxxxxxxxxxx</privateUserId>
我使用这个脚本:
groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
holder = groovyUtils.getXmlHolder("GET ISM#Response")
privateUserId = holder.getNodeValue( "//privateUserId" )
assert privateUserId != null
assert privateUserId.length() > 0
latlonNode = groovyUtils.getXmlHolder(privateUserId)
latlon = latlonNode.getNodeValue("//privateUserId")
log.info(latlon)
assert latlon != null
context["latlon"] = latlon
爪是 SET ESM 的输入。
我有这个错误:
Assertion failed: assert privateUserId != null | | null false Assertion failed: assert privateUserId != null | | null false error at line: 4
但是我不知道为什么第4行的问题
我想解决这个问题。谢谢
从你的问题来看,不清楚响应中是否有任何名称空间。可能这可能是获得 null 的原因之一。
您可以使用 Script Assertion
作为第一步。
assert context.response, 'Response is empty or null'
def pId = new XmlSlurper().parseText(context.response).'**'.find{it.name() == 'privateUserId'}.text()
log.info "privateUserId value : $pId"
assert pId, "Value of privateUserId is empty or null"
def userId = pId?.substring(0, pId?.indexOf('@'))
context.testCase.setPropertyValue('USERID', userId)
在下一步中,如果需要提取用户 ID,请使用 ${#TestCase#USERID}