在soapUI的可让您只需从WSDL基础服务创建一个基于WSDL服务的符合标准的模拟。被称为“MockService”,这可以直接从内部的soapUI运行,命令行浇道,或甚至标准servlet容器。
一个MockService符合公认的WSDL,SOAP,HTTP标准,客户应该能够使用它,就好像它是一个真正的服务。
MockServices模拟通过暴露任意数量的MockOperations提供他们的服务。其中每个又可以包含任何数量的配置的MockResponse消息,下面的模型:
在soapUI的一个例子MockService如下所示;
这里MockService包含四个MockOperations其中每个包含不同数量MockResponse消息。
当接收由MockService一个SOAP请求和分派到特定MockOperation,相应MockResponse基于所配置的MockRequest分派器被选择。
每个MockOperation对应在您的测试项目的一个WSDL服务的WSDL操作,包含的MockResponse消息从与操作相关联模式中创建。这并不意味着一个MockResponse必须遵守相关联的模式,它可以返回任意XML或短信,你可能例如配置它对完全不同的操作各返回一个响应消息,从而使您可以测试有能力处理无效的和意想不到的响应消息。
创建MockService是直线前进,最简单的就是从WSDL服务通过服务右键菜单生成它Generate MockService action。在打开的对话框让你选择哪些操作应该被Mock,并填写MockService上的路径或端口:
确保路径和端口设置控制在其上MockService可用,确保尚未使用你的系统上运行的其他服务器软件选定端口的URL。
快速提示: 您可以在同一端口和路径上创建多个MockServices,soapUI的会问每个依次调度传入的请求,直到请求被处理。
设置所需的配置和后点击OK,一个MockService被添加到项目中,双击它打开MockService窗口:
顶部包含一个操作选项卡显示配置MockOperations,下面就是标签添加的说明:
当点击运行按钮,MockService是soapUI的内立即启动,就可以看到这一点,如果你点击日志选项卡的soapUI窗口的底部;
该MockService现在已准备好根据配置的路径和端口处理传入的SOAP请求。这些将基于其内容被分派到的相应MockOperation,如果没有匹配MockOperation会有一个标准的SOAP错误返回:
在这里,我们已经发送SOAP请求到一个无mocking的MockService,返回错误信息。
消息日志在底部显示MockService最后的收到的请求; 双击一个条目以查看请求和返回的响应的实际内容,例如:
快速提示: 您可以通过取消选中启用选项在消息日志查看器禁用日志,这将节省内存和CPU性能。
如上所述,监听到配置的路径和端口上的请求后该服务立即启动。此外,它也暴露了MockServic的WSDL网址; 例如输入HTTP://本地主机:8088 / mockSampleServiceBinding WSDL在浏览器中显示的WSDL:
请注意,MockOperation可以从潜在地两个不同的WSDL包含MockOperations,在这种情况下,生成的WSDL将是所有被mock的包装WSDL。
也暴露了WSDL包含实际的HTTP地址暴露在MockService:
如果你想通过WSDL从远程计算机来访问你的MockServices,那么这个选项对话框可以修改主机域。重命名它:
这个结果在下面的节点暴露在WSDL:
有许多可用设置有关的soapUI如何分派收到的消息,可通过左下方的MockService属性选项卡:
如下所示: