SOAPUI获取JDBC请求值以断言SOAP响应

时间:2017-09-14 07:46:08

标签: jdbc groovy soapui

我在SOAPUI中设置了一个测试,我的第一步是对db的JDBC查询。此查询返回3个值。我在JDBC步骤中将所有3个值都设置为属性。

然后,我有另一个步骤进行Property Transfer,最后是SOAP请求步骤。

我将两个JDBC属性传递给SOAP请求步骤。这一切都已成功设置。我希望做的最后一步是针对SOAP响应中的特定值声明最终的JDBC属性。

根据下面的groovy断言,我有这个断言工作到目前为止,但是对于硬编码值('9Jg')。我想阻止这个值被硬编码,我希望从JDBC属性中提取值。

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def holder = groovyUtils.getXmlHolder( messageExchange.responseContent )
def pxml = new XmlSlurper().parseText(context.response)

def expectedCodes = ['9Jg'] 
def actualCodes = pxml.'**'.findAll{it.name() == 'CurrHospProductCode'}*.text() as List
assert expectedCodes.sort() == actualCodes.sort()

编辑:基于OP的评论

<?xml version="1.0" encoding="UTF-8"?>
<Results>
   <ResultSet fetchSize="64">
      <Row rowNumber="1">
         <TW606_POLRELATION.HPOLICY>H00000032</TW606_POLRELATION.HPOLICY>
         <TW606_POLRELATION.CUSTOMER>26485588</TW606_POLRELATION.CUSTOMER>
         <TW304_PRODHIST.PRODUCT_1>FJ0</TW304_PRODHIST.PRODUCT_1>
      </Row>
   </ResultSet>
</Results>
编辑:我的测试用例的图片如下。

enter image description here

编辑:包括以下第三步回复。我希望在CurrExtrasProductCode中断言值

     <ns0:ServiceBody>
        <ns1:GetTreatmentTypesResponse xmlns:ns1="http://www./v1-0">
           <ns1:ProductAndTreatmentTypes>
              <ns2:ProductHistory xmlns:ns2="http://www./v1-0">
                 <ns2:CurrHospProductCode>9J0</ns2:CurrHospProductCode>
                 <ns2:CurrHospProductDesc>Saver $500 excess</ns2:CurrHospProductDesc>
                 <ns2:CurrHospProductStartDate>2016-06-14</ns2:CurrHospProductStartDate>
                 <ns2:CurrHospProductExcessPaid>No</ns2:CurrHospProductExcessPaid>
                 <ns2:PrevHospProducts/>
                 <ns2:CurrExtrasProductCode>08S</ns2:CurrExtrasProductCode>
                 <ns2:CurrExtrasProductDesc>Saver Flexi Extras</ns2:CurrExtrasProductDesc>
                 <ns2:CurrExtrasProductStartDate>2016-06-14</ns2:CurrExtrasProductStartDate>
                 <ns2:CurrExtrasProductlengContCover>15</ns2:CurrExtrasProductlengContCover>
                 <ns2:PrevExtrasProducts/>
                 <ns2:PolicyStartDate>2016-06-14</ns2:PolicyStartDate>
                 <ns2:CurrAddOnProducts/>
              </ns2:ProductHistory>

1 个答案:

答案 0 :(得分:1)

您可以在groovy脚本或脚本断言中从resultSet中检索您的值,如下所示:

context.expand( '${NAME of JDBC Request#ResponseAsXml#//TW304_PRODHIST.PRODUCT_1}' )

(我不确定路径,也许你需要填写你的价值的完整路径)