我有一个包含以下测试步骤的测试用例:
- (JDBC) 加载测试数据步骤
- (转移)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 中我不能断言这个 soap 步骤之外的东西
最佳答案
“问题是在 SoapStep 中,我无法针对此 soap 步骤外部的某些内容进行断言”是的,您可以针对另一个步骤中的某些内容进行断言。
在您步骤的“(SOAP) SoapRequestStep”脚本断言中,您可以通过执行以下操作来引入 JDBC 步骤的响应。
def jdbsResponseAsXml = context.expand( '${(JDBC) LoadTestDataStep#ResponseAsXml#//Results[1]}' )
def slurper = new groovy.json.JsonSlurper()
def jdbcJson = slurper.parseText(jdbsResponseAsXml );
通过上述步骤,您将在“(SOAP) SoapRequestStep”脚本断言中获得 JSON 格式的 jdbc 结果。
然后您需要找到感兴趣的节点并进行比较。
此外,这是我自己的偏好,我倾向于不使用这种方式编写断言脚本。相反,在两个感兴趣的步骤之后,我会创建一个新的 Groovy 脚本测试步骤,我会在其中从感兴趣的步骤中提取数据并在其中断言。
关于testing - 如何在 soapUI 中使用断言来匹配外部属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48688702/