在soapUI的可让您只需从WSDL基础服务创建一个基于WSDL服务的符合标准的模拟。被称为“MockService”,这可以直接从内部的soapUI运行,命令行浇道,或甚至标准servlet容器。

一个MockService符合公认的WSDL,SOAP,HTTP标准,客户应该能够使用它,就好像它是一个真正的服务。

1. MockService模型

MockServices模拟通过暴露任意数量的MockOperations提供他们的服务。其中每个又可以包含任何数量的配置的MockResponse消息,下面的模型:

  • MockService,包含

    • MockOperations,包含

      • MockResponses

在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开始调用,用它来 ​​初始化
  • 停止脚本:调用时MockService停止,用它来 ​​清理,自定义报表等。
  • OnRequest脚本:调用时MockService接收来自外部客户端的请求,用它来 ​​提供定制的mocking行为。
  • AfterRequest脚本:当请求到MockService已处理后被调用,用于使用该定制数据收集或报告。

2.运行您的MockService

当点击运行按钮,MockService是soapUI的内立即启动,就可以看到这一点,如果你点击日志选项卡的soapUI窗口的底部;

该MockService现在已准备好根据配置的路径和端口处理传入的SOAP请求。这些将基于其内容被分派到的相应MockOperation,如果没有匹配MockOperation会有一个标准的SOAP错误返回:

在这里,我们已经发送SOAP请求到一个无mocking的MockService,返回错误信息。

2.1。查看分派消息

消息日志在底部显示MockService最后的收到的请求; 双击一个条目以查看请求和返回的响应的实际内容,例如:

快速提示: 您可以通过取消选中启用选项在消息日志查看器禁用日志,这将节省内存和CPU性能。

3.查看协议

如上所述,监听到配置的路径和端口上的请求后该服务立即启动。此外,它也暴露了MockServic的WSDL网址; 例如输入HTTP://本地主机:8088 / mockSampleServiceBinding WSDL在浏览器中显示的WSDL:

请注意,MockOperation可以从潜在地两个不同的WSDL包含MockOperations,在这种情况下,生成的WSDL将是所有被mock的包装WSDL。

也暴露了WSDL包含实际的HTTP地址暴露在MockService:

如果你想通过WSDL从远程计算机来访问你的MockServices,那么这个选项对话框可以修改主机域。重命名它:

这个结果在下面的节点暴露在WSDL:

4. MockService请求调度

有许多可用设置有关的soapUI如何分派收到的消息,可通过左下方的MockService属性选项卡:

如下所示:

  • 匹配的SOAP版本:需要使用和所配置MockOperation请求相同的SOAP版本。如果它被设置为false一个SOAP 1.2请求可以被分派到一个SOAP 1.1 MockOperation。
  • 需要SOAP动作:该选项控制是否需要soapUI检查SOAP动作HTTP头分配到正确的MockOperation。
  • Dispatch的回应:you might want to use the ReplyTo Header in a request when working with WS-Addressing to direct the response to a soapUI MockService. If this is the case soapUI will actually be receiving a response message, which is not supported unless this specific option is set to true, in which case soapUI will dispatch the request as if it was a request for the received response. Further, if the received response is a SOAP Fault, for example via the Fault-To header, an option in the MockService Options dialog is available for telling soapUI how to dispatch this since Fault messages usually are generic:

SOAPUI使用教程-MockServices工作原理的更多相关文章

  1. git教程1-git工作原理与初始化仓库

    一.git工作原理 1.git是版本控制器,因此管理的是版本,每一次提交commit就是新建一个版本. 2.分支:git主分支可以存放一个阶段已经完成好的版本,而修改版本则放置在次分支上. 3.融合: ...

  2. 全网最全最细的fiddler使用教程以及工作原理

    目录:导读 一.Fiddler抓包工具简介 二.Fiddler工作原理 三.Fiddler安装 四.Fiddler界面介绍​ 五.Fiddler菜单栏介绍 六.Fiddler工具栏介绍 七.Fiddl ...

  3. C#微信开发小白成长教程一(公众平台的工作原理与调试环境部署,附视频)

    黑夜给了我黑色的眼睛,我决定录视频到天明.半年前的现在,我还在苦逼着加着班,半年后的今天我依旧苦逼着加着班.不过现在的是为自己加班,作为一个资深程序小白,一个月前我光荣的成了一个不称职的资本家,不称职 ...

  4. 【CC2530入门教程-06】CC2530的ADC工作原理与应用

    第6课  CC2530的ADC工作原理与应用 广东职业技术学院  欧浩源 一.A/D转换的基本工作原理 将时间上连续变化的模拟量转化为脉冲有无的数字量,这一过程就叫做数字化,实现数字化的关键设备是AD ...

  5. AppScan工作原理&操作教程

    一.AppScan的工作原理 对一个综合性的大型网站来说,可能存在成千上万的页面.以登录界面为例,至少要输入用户名和密码,即该页面存在两个字段,当提交了用户名和密码等登录信息,网站需要检查是否正确,这 ...

  6. WireGuard 教程:WireGuard 的工作原理

    原文链接:https://fuckcloudnative.io/posts/wireguard-docs-theory/ WireGuard 是由 Jason Donenfeld 等人用 C 语言编写 ...

  7. 转载:【Oracle 集群】RAC知识图文详细教程(三)--RAC工作原理和相关组件

    文章导航 集群概念介绍(一) ORACLE集群概念和原理(二) RAC 工作原理和相关组件(三) 缓存融合技术(四) RAC 特殊问题和实战经验(五) ORACLE 11 G版本2 RAC在LINUX ...

  8. 【夯实Nginx基础】Nginx工作原理和优化、漏洞

    本文地址 原文地址 本文提纲: 1.  Nginx的模块与工作原理    2.  Nginx的进程模型    3 . NginxFastCGI运行原理        3.1 什么是 FastCGI   ...

  9. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)

    RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

随机推荐

  1. jQuery验证控件jquery.validate.js使用说明

    官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuery plugin: Validation 使用说明 转载 ...

  2. [Fluent NHibernate]第一个程序

    目录 写在前面 Fluent Nhibernate简介 基本配置 总结 写在前面 在耗时两月,NHibernate系列出炉这篇文章中,很多园友说了Fluent Nhibernate的东东,也激起我的兴 ...

  3. diff和patch的使用、patch文件的格式解说

    为了弄懂 patch中的 p0   p1    和.orig文件是啥,找到了这篇文章! 来源:http://www.cnblogs.com/super119/archive/2010/12/18/19 ...

  4. Bash 什么时候会给 HOME 赋初始值

    今天无意发现下面这个表现: $  env -i bash -c cd bash: line 0: cd: HOME not set $ env -i bash -c 'echo $HOME' 这表明了 ...

  5. 表单提交按钮input和button、a的差异

    现在普遍的在网页中,表单提交数据的按钮最常见实用有三种,一种是input,一种是button,最后一种,是其他如a标签,div标签,span标签代替而来.在以前的日子里,大家都习惯于用input,因为 ...

  6. [SQL] SQL学习笔记之基础操作

    1 SQL介绍 SQL 是用于访问和处理数据库的标准的计算机语言.关于SQL的具体介绍,我们通过回答如下三个问题来进行. SQL 是什么? SQL,指结构化查询语言,全称是 Structured Qu ...

  7. PHP获取指定月份的第一天开始和最后一天结束的时间戳函数

    <?php /** * 获取指定月份的第一天开始和最后一天结束的时间戳 * * @param int $y 年份 $m 月份 * @return array(本月开始时间,本月结束时间) */ ...

  8. C/C++ 结构体内存对齐

    内存对齐是指的是编译器在编译的时候总是会将结构体的元素的地址放在一些合适的位置使得CPU访问这些数据的效率变得更高.首先来看下面这个例子: struct A{ char a; char b; int ...

  9. linux Mint截图软件 Shutter

    安装shutter: sudo add-apt-repository ppa:shutter/ppa sudo apt-get update sudo apt-get install shutter ...

  10. sql server 2008 数据的行转列

    create table tb(id int, value varchar(10)) insert into tb values(1,'aa') insert into tb values(1,'bb ...