如何获取第一步响应名称并将其用作第二步输入
答案 0 :(得分:0)
在这种情况下,你可以修改你的groovy
def gUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = gUtils.getXmlHolder("GetCountryByCountryCode#Response")
def xml = holder.getNodeValue("//*:GetCountryByCountryCodeResult")
def cdataSet = gUtils.getXmlHolder(xml)
def country = cdataSet.getNodeValue("//*:Table//*:name")
testRunner.testCase.setPropertyValue("country", country)
并映射testCase属性" country"给你下一次服务的输入。
答案 1 :(得分:0)
您的测试用例中无需单独的Groovy Script测试步骤。
在您的情况下,首先解析响应并提取CDATA
内的字符串。再次解析它以获得与代码匹配的计数名称。
在第一步是肥皂请求步骤,使用以下代码添加Script Assertion
:
//Check if there is repose
assert context.response, 'Response is empty or null'
def lookpcode = context.expand('${#TestCase#CountryCode}')
def dataSet = new XmlSlurper().parseText(context.response).'**'.find{ it.name() == 'GetCountryByCountryCodeResult')} as String
def countryName = new XmlSlurper().parseText(dataSet).'**'.find{ it.name() == 'countrycode' && it == lookpcode)}.parent().name.text()
log.info "Country name is ${countryName} where code is ${lookpcode}"
assert countryName, 'Country name empty or null'
context.testCase.setPropertyValue('COUNTRY_NAME', countryName)
在下一步中,使用属性扩展,您需要国家/地区名称,即${#TestCase#COUNTRY_NAME}
答案 2 :(得分:0)
简单的解决方案是添加了物业转移步骤 - 由Helen Kosova发布
链接在这里:
Aa常规财产转移步骤
来源(步骤):GetCountryByCountryCode 财产:回应 路径语言:XPath 表达: (撒克逊:解析(// :GetCountryByCountryCodeResult))// {表{3}} /名称 要不就 (撒克逊:解析(// :GetCountryByCountryCodeResult))//名 (似乎撒克逊人默认选择第一个匹配节点)