我需要模拟 Web 服务调用。这里不是对虚拟服务器的实际 Web 服务调用,服务器应该从本地目录回复我的响应 xml 响应文件。
2 回答
我们的项目使用了这种方法(用于模拟本地工作空间中不可用的外部 Web 服务)。
简短的回答是肯定的,但如何实现将取决于您的代码。
首先,我们创建了一个调用webservice的接口,这样我们就可以创建2个实现,一个actual(调用外部服务)和一个Test(调用一个从文件读取的内部WebService)。
接下来,我们创建了一个托管在同一台服务器上的测试网络服务。现在逻辑很简单。基于 input ,我们曾经从文件中读取正确的响应。您可以构建您想要的任何逻辑,我们的框架旨在支持多个 Web 服务。最后,在我们的代码中,有点像 spring,我们曾经指向测试服务(通过接口)而不是实际服务。所以我们可以从文件中读取并提供响应。当外部接口可用时,我们只需切换配置就可以了。
当然,这过于简单化了,但我希望你能明白要点。
您有两种处理方式:
- 通过提供客户端 ws 的模拟实现从客户端模拟 ws。
- 通过创建 ws 的模拟实例从服务器端模拟 ws。
从客户端模拟呼叫很简单。您使用要调用的 ws 方法创建一个通用接口。然后你创建了两个实现。一个是对 ws 的有效调用,另一个是来自本地文件的存根响应。
从服务器端模拟或模拟 ws 并不复杂,但它不是相同的方法。您可以对其进行硬编码,但当您必须再次对其进行模拟时,它不是一个安全的解决方案。您还可以使用 Web 服务模拟器代替您的 Web 服务。您不会查询您的网络服务,而是另一个。
SOAPUi 可以通过模拟您的 Web 服务响应来帮助您完成此任务。
SOAP 模拟示例
要使用本地文件作为响应,您应该使用 SOAPUI 响应脚本。
SOAP 响应模拟