我是WireMock的创造者。
我最近使用WireMock在客户端项目上模拟了SOAP接口的集合,因此我可以证明这是可能的。至于它比SOAP
UI更好还是更坏,我想说它有一定的优势,但需要权衡取舍。主要优点是相对易于部署和编程访问/配置,并支持HTTPS和低级故障注入之类的功能。但是,您需要做更多的工作来解析和生成SOAP负载-
它不会像SOAP UI一样从WSDL中生成代码/存根。
我的经验是,诸如SOAP UI之类的工具可以使您入门更快,但是从长远来看,当您的测试套件变得微不足道时,往往会导致更高的维护成本。
依次解决您的问题:1)如果要让模拟在服务器上的某个地方运行,执行此操作的最简单方法是运行如上所述的独立JAR。我建议不要尝试将其部署到容器中-
此选项仅在没有其他选择时才存在。
但是,如果您只想运行集成测试或完全独立的功能测试,建议您使用JUnit规则。我要说的是,如果a)您正在将其他已部署的系统插入其中,或者b)您是通过非JVM语言使用它,那么在专用的过程中运行它只是一个好主意。
2)您需要使用以下三种方式之一进行配置: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支持。



