我需要将操作 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输入了talon。
我有这个错误:
断言失败:断言privateUserId!= null | | null false断言失败:断言privateUserId!= null | |第0行的空错误:
但我不知道为什么第4行出现问题。
我想解决这个问题。谢谢
答案 0 :(得分:2)
根据您的问题,不清楚响应中是否有任何名称空间。可能这可能是获得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}