WireMock用作SOAP服务的代理



以下是我尝试处理的场景:

我正在使用Spring Cloud Contract编写合同驱动测试。微服务之间的相互通信测试运行良好。

一些微服务正在调用基于SOAP的服务。作为集成测试的一部分,我尝试使用WireMock作为基于SOAP的服务的代理。基本上,WireMock应该拦截调用,然后用相同的请求调用目标实时环境,并将相同的响应作为存根返回给测试。

不幸的是,我找不到任何例子来进行这项工作。这些服务使用HTTP协议。任何关于如何实现这一目标的例子或任何指针都将是很棒的。谢谢

首先,您需要将SOAP客户端指向WireMock基URL,因此,例如,如果您使用的是Spring属性文件,则可能会有以下内容:

soap.api.host=wiremock-host.internal
soap.api.port=8888

然后,您需要使用低优先级、广泛匹配的代理存根来配置WireMock服务器。下面是一个JSON形式的示例:

{
"priority": 8,
"response": {
"proxyBaseUrl" : "http://target.soap.endpoint"
}
}

最后,您将为要拦截的每个请求创建额外的存根(默认优先级(,例如

{
"request": {
"method": "POST",
"urlPath": "/v1/some/thing",
"headers": {
"SOAPAction": {
"contains": "MyAction"
}
}
},
"response": {
"status": 200,
"body": "<soap:Envelope ..."
}
}

相关内容

  • 没有找到相关文章

最新更新