【发布时间】:2019-01-30 23:45:38
【问题描述】:
有没有办法在 Citrus 框架中作为客户端或服务器发送原始的肥皂请求和响应?我有一个肥皂请求的纯文本,想将它发送到服务器。之后我想验证纯文本/ xml - 响应。
问候, 可疑的迪耶
【问题讨论】:
标签: http soap citrus-framework
有没有办法在 Citrus 框架中作为客户端或服务器发送原始的肥皂请求和响应?我有一个肥皂请求的纯文本,想将它发送到服务器。之后我想验证纯文本/ xml - 响应。
问候, 可疑的迪耶
【问题讨论】:
标签: http soap citrus-framework
你检查过这个sample project 吗?这是如何使用 Citrus 测试 SOAP 端点的一个很好的例子。基本上,当您发送带有soap() 操作的XML 时,它将被包装在一个SOAP 信封中。 Citrus 在幕后处理所有 SOAP 技术细节,因此您可以保持测试简单。
但这也取决于您所说的“原始肥皂请求和响应”是什么意思。如果您想完全控制整个 XML(SOAP 信封 + 正文),您可以使用标准 HTTP 操作 documentation 和 sample project。使用此方法时,您需要了解一些事项:
【讨论】:
默认情况下,Citrus 将自动处理 SOAP 信封并为您包装/解包有效负载主体。如果您想保持 SOAP 信封原样以便自己提供整个 SOAP 消息,您需要在服务器端点上进行设置:
<citrus-ws:server id="soapServer"
port="8080"
auto-start="true"
keep-soap-envelope="true"/>
使用keep-soap-envelope="true",您现在可以在处理此服务器端点上的消息时自行指定 SOAP 信封。在验证中,您现在可以提供整个 SOAP 信封作为预期的消息内容。
在客户端,您需要在 Citrus 中使用普通的 http-client 组件,因为 soap-client 组件目前无法保留 SOAP 信封。
当然也可以使用客户端和服务器端的核心http组件来发送和接收带有测试人员提供的SOAP信封的SOAP消息。
【讨论】: