【发布时间】:2017-09-14 07:46:08
【问题描述】:
我在 SOAPUI 中设置了一个测试,我的第一步是对 db 进行 JDBC 查询。此查询返回 3 个值。我已在 JDBC 步骤中将所有 3 个值设置为属性。
然后我还有一个属性转移步骤,最后是 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>
编辑:我的测试用例的图片如下。
编辑:包括下面的第三步响应。我希望在 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>
【问题讨论】:
-
那么你想要第三个 JDBC 值作为期望值吗?
-
没错。而不是我的断言声明 def 'expectedCodes = ['9Jg']' id 像我的断言一样从我的 JDBC 步骤中查找剩余值。
-
您介意提供示例响应吗?
-
当然。假设您的意思是来自 JDBC 调用的响应。
H00000032 26485588 FJ0 -
对不起。在 cmets 中将格式设置为代码。