柑橘中的原始肥皂请求/响应

时间:2018-08-24 13:19:47

标签: http soap citrus-framework

有没有办法在Citrus框架中以客户端或服务器的形式发送原始的肥皂请求和响应?我有一个肥皂请求的纯文本,并想将其发送到服务器。之后,我想验证纯文本/ xml-响应。

关于, 可疑迪伊

2 个答案:

答案 0 :(得分:0)

您检查了此sample project吗?这是如何使用Citrus测试SOAP端点的一个很好的例子。基本上,当您发送带有soap()操作的XML时,它将被包装在SOAP信封中。 Citrus处理了所有SOAP技术细节,从而使您的测试变得简单。

但这还取决于您所说的“原始请求和响应”的含义。如果要完全控制整个XML(SOAP信封+正文),可以使用标准的HTTP操作documentationsample project。使用这种方法时,您需要了解一些事情:

  • 您必须发送完整的SOAP信封
  • 您需要根据SOAP版本设置正确的 Content-Type HTTP标头
  • 如果您使用的是SOAP 1.1,还需要发送 SOAPAction HTTP标头
  • 没有架构验证

答案 1 :(得分:0)

默认情况下,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消息。