如何在soapUI中使用断言来匹配外部属性

时间:2018-02-08 15:10:37

标签: testing xpath soapui assertion

我有一个包含以下测试步骤的测试用例:

  • (JDBC)LoadTestDataStep
  • (转移)GetPropertyStep
  • (SOAP)SoapRequestStep

在LoadTestDataStep中,我从JDBC数据库加载一些数据,稍后我将在' SoapRequestStep'

中加载

GetPropertyStep允许我从LoadTestDataStep结果中检索数据并将它们放入SoapRequestStep请求。

现在在SoapRequestStep中,我想声明对某些xpath的评估与我在LoadTestDataStep中检索的一些数据匹配

我希望自己能理解。

这是JDBC的结果:

<Results>
    <ResultSet fetchSize="10">
        <Row rowNumber="1">
            <DRV_DVR_ID>46259976</DRV_DVR_ID>
            <CUST_DPT>00025888</CUST_DPT>
        </Row>
    </ResultSet>
</Results>

这是SOAP结果(简化):

<chargeCard chargeSequence="1353" businessAccountId="1520444" ownershipType="N" meanOfPaymentCode="EPPV" cashOrChargeFlag="CH" custdept="982-1602"/>

我想声明来自JDBC的CUST_DPT =来自soap响应的custdept属性。

问题是在SoapStep中我无法断言这个肥皂步骤之外的东西

1 个答案:

答案 0 :(得分:1)

&#34;问题是在SoapStep中我无法断言这个肥皂步骤外面的东西&#34;是的,你可以从另一个步骤中断言。

在您的步骤&#39;(SOAP)SoapRequestStep&#39;脚本断言,您可以通过执行某些操作来提取JDBC步骤的响应。

def jdbsResponseAsXml = context.expand( '${(JDBC) LoadTestDataStep#ResponseAsXml#//Results[1]}' )

def slurper = new groovy.json.JsonSlurper()
def jdbcJson = slurper.parseText(jdbsResponseAsXml );

通过上述步骤,您将在&#39;(SOAP)SoapRequestStep&#39;中获得JSON形式的jdbc结果。脚本断言。

然后您需要找到感兴趣的节点并进行比较。

此外,这是我自己的偏好,我倾向于不以这种方式编写断言。相反,在感兴趣的两个步骤之后,我将创建一个新的Groovy脚本测试步骤,在那里我将从感兴趣的步骤中提取数据并在那里断言。