我是WireMock的创造者.
我最近使用WireMock在客户端项目上模拟了SOAP接口的集合,所以我可以证明它是可能的.至于它是否比SOAP UI更好或更差,我会说有一些明确的好处,但有一些权衡.一个主要的好处是相对容易部署和编程访问/配置,以及对HTTPS和低级故障注入等方面的支持.但是,您需要做更多的工作来解析和生成SOAP有效负载 – 它不会像SOAP UI那样从WSDL生成代码/存根.
我的经验是像SOAP UI这样的工具可以让你更快地开始,但是从长远来看,当你的测试套件变得越来越琐碎时,往往会导致更高的维护成本.
要依次解决您的观点:
1)如果您希望您的模拟在某个服务器上运行,最简单的方法是按照您的描述运行独立的JAR.我建议不要尝试将它部署到容器中 – 这个选项实际上只存在于没有其他选择的情况下.
但是,如果您只想运行集成测试或完全自包含的功能测试,我建议使用JUnit规则.我要说,如果a)你将其他已部署的系统插入其中,或者b)你是从非JVM语言中使用它,那么在一个专用的进程中运行它是一个好主意.
2)您需要以3种方式之一配置它:1)Java API,2)基于HTTP的JSON,或3)JSON文件. 3)可能与您习惯使用SOAP UI的方式最接近.
3)对于使用JSON和Java的大量存根示例,请参见http://wiremock.org/stubbing.html.由于SOAP倾向于绑定到固定端点URL,因此您可能需要urlEqualTo(…).当我过去使用SOAP时,我倾向于在整个请求体上进行XML匹配(参见http://wiremock.org/stubbing.html#xml-body-matching).我建议投资编写一些Java构建器来发出所需的请求和响应主体XML.
4)Mock Server和Betamax都是WireMock的成熟替代品,但AFAIK它们不提供任何更明确的SOAP支持.