如前所述,一个MockService有多个MockOperations其中每个可以包含任意数量的MockResponse消息; 也就是说,一个MockService响应实际上包括若干预设响应之间发生变化。每个MockOperation对应一个项目中导入的WSDLOperation。通过MockService窗口MockOperations列表的顶部的按钮add MockOperation,系统提示您输入模拟的WSDLOperation:
选择所需的操作创建一个相应的MockOperation和默认MockResponse。
双击打开MockOperation的MockResponses窗口用于配置MockOperation:
它包含两个区域;
- 顶部包含含有MockResponse消息列表,双击一个MockResponse打开MockResponse编辑器(见下文)。使用Add MockResponse工具栏中的按钮在列表的顶部,只要你想添加尽可能多的MockResponses。
- 下半部分包含的调度方式(控制如何发送响应)和(在上面的截图脚本)它的配置。
MockOperation调度
一旦请求被MockService收到并分配到MockOperation,需要的soapUI选择正确的响应方法,并返回给客户端。可从调度下拉框选择许多不同的方式调度,让我们一起来看看这些和如何将它们投入使用。
- 序列:这是最简单的调度方法; 顺序返回已经被添加到MockOperation的响应
- 随机:几乎一样简单,这调度随机选择要使用的响应,在一段时间所有响应将被返回的次数相同。
- 查询MATCH:这一个值得多一点的解释,因为它是非常通用的用于返回基于不同请求的内容的反应。配置面板如下: 在左侧列表中包含任意数量,选择或添加一个你指定正确的域: 当Xpath值相匹配。使用分配配置的返回。如果没有匹配,默认响应代替。
- XPATH -这类似于QUERY_MATCH,但不是很厉害; 如果XPath表达式被传入请求得到的值就用于该MockResponse要返回选择。它的优点是,我们并不需要为新的搜索条件增加新的XPath语句,只是一个MockResponse。配置面板如下:
-
SCRIPT -一如既往的脚本选项是最通用,最难以掌握。创建一个被调用为每个请求应返回到使用MockResponse的名称脚本。该脚本可以做任何事情基本上,例如:
- 运行的soapUI请求,甚至一个TestCase基于其结果的反应
- 查询响应数据的数据库,并使该提供给MockResponse通过上下文变量
- 引发一些外部进程,并选择基于它的结果的反应
- 以及更多
MockResponse
在MockService对象模型中的最后一站是MockResponse,这是MockService调用客户端返回的消息。MockServices可以包含自定义的内容,标题和附件,从而使您可以模拟任何一种有效(或无效)HTTP响应,脚本可能让你轻松地使用动态内容到传出响应。
通过双击打开MockResponse揭示了如下窗口:
这和标准SOAP请求编辑器窗口基本相同,但用户现在的重点是编辑器的右侧(响应)的一部分。在这里,您配置要返回的响应消息,包括通过督察底部的自定义HTTP标头和附件,以同样的方式,你在请求编辑器配置请求消息。
该窗口的左侧部分显示实际分派到这个特定的响应的最后一个请求,所有的可能性,以查看传入的HTTP头,附件等。
MockResponse脚本
除了现有的标准脚本的可能性,也可以包括在返回消息中的每个MockResponse可以有其自己的脚本创建动态内容。该脚本检查器在响应编辑器底部如下:
在上面的例子中可以看出,设置了一个简单的sessionid属性在当前上下文中的脚本,其随后通过属性扩展用在响应消息属性。很显然,在一个反应为使用性能的产生可能是更复杂的,例如查询数据库或读取外部文件的响应;