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

标签 testing xpath soapui assertion

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

  • (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/

相关文章:

unit-testing - 更高层次的单元测试

python - 选择器response.xpath和response.css之间的输出差异是什么?

xml - 从 xml 文档中查找 1-itemset, 2-itemset...n-itemset

xml - 带有命名空间的 XPath 和 XML

java - 用于获取事件的 VMWare API

performance - 如何在 SOAP UI 免费版中自动运行多个负载测试?

unit-testing - 模拟 addProvider(Class<?> klass)

java - 禁用 arquillian 清理

ruby - 如何从另一个 rspec 测试中调用 rspec 测试

xml - getNodeValue() 返回 null,尽管响应 xml 持有者不返回 null