WireMock 用作 SOAP 服务的代理
WireMock To Use As Proxy For SOAP Service
这是我正在尝试处理的场景:
我正在使用 Spring 云合同编写合同驱动测试。微服务间互通测试正常
一些微服务正在调用基于 SOAP 的服务。作为集成测试的一部分,我正在尝试使用
WireMock 作为基于 SOAP 的服务的代理。基本上,WireMock 应该拦截调用,然后使用相同的请求调用目标实时环境,return 对测试的响应与存根相同。
遗憾的是,我找不到任何如何继续进行的示例。这些服务使用 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 ..."
}
}
这是我正在尝试处理的场景:
我正在使用 Spring 云合同编写合同驱动测试。微服务间互通测试正常
一些微服务正在调用基于 SOAP 的服务。作为集成测试的一部分,我正在尝试使用 WireMock 作为基于 SOAP 的服务的代理。基本上,WireMock 应该拦截调用,然后使用相同的请求调用目标实时环境,return 对测试的响应与存根相同。
遗憾的是,我找不到任何如何继续进行的示例。这些服务使用 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 ..."
}
}