谈基于SOAPUI进行服务模拟和自动化测试

标签: 随笔文章 | 发表时间:2012-06-11 20:55 | 作者:人月神话
出处:http://blog.sina.com.cn/cmmi
SOAPUI是常用的一种Web Service测试工具,既可以测试SOAP WebService也可以测试Restful WebService。基本的对服务进行测试的过程不再讲,最近研究服务模拟和服务自动化测试,发现SOAPUI本身也同样具备这部分的功能。

对于服务模拟Mock Service

前面一篇文章谈到过服务模拟器,准备开发一个通用的服务模拟器,也解决服务模拟的问题。服务模拟的核心就是在服务端本身并不具备能力提供的情况下能够对服务提供端的服务能力进行模拟,这种模拟能力最大好处就是可以在该模拟下并行的进行客户端的服务消费代码的开发和测试工作。

对于MockService本身的制作也很简单,基于标准的WSDL和XSD文件即可以进行。在MockSerice的Reponse产生后可以自行修改Response返回的内容。完成后对MockService进行启动,并挂接到已有的Request上面即可以开始模拟操作。

如果仅仅如此,可能Mock的意义并不大,SOAPUI本身提供另外一个核心功能可以将MockService模拟服务发布为一个WAR包,这个意义就很重要的,即将WAR包引入到JAVA项目中后完全就可以作为服务模拟端使用,基本不用再独立开发服务模拟端的代码,这才是MockService的核心作用。

对于自动化测试

自动化测试含几个重要的内容,首先是可以建立TestCase,然后在TestCase里面可以设置多个测试步骤,对服务的SLA,安全等进行自动化测试。

再结合到Junit做服务的自动化测试可以看到,很多时候我们需要的是对服务Response的结果进行验证。而在这个时候支持Groovy脚本就显得非常重要了。我们完全自己编写Groovy脚本,对返回的结果进行Assert操作。这样在服务测试的时候自动化按步骤运行,只有当断言不通过的时候才会返回测试失败信息。

很Junit相比,这种自动化测试比较难集成到每日编译和持续构建环境中,虽然SOAPUI本身也提供了和Junit的集成,但是这种自动化测试非常适合测试人员使用,只需要稍微学习下Groovy脚本的写法,XML结构即可以编写相应的脚本代码。当然对于首次测试很多时候还是需要人工进行测试结果的验证和确认,但是对于后续的回归测试工作完全可以通过这种自动化方法来完成。

性能测试的支持

对于性能测试,引用一篇文章里面的一段内容来说明。

duiySoapUI是专门针对ws接口的测试工具,在实现对相同接口测试时,SoapUI表现出来的性能更优越。

SoapUI在发送请求时,是直接以组装好的soap报文进行发送,而LR是使用web_service_call方法,从方法传入相应的参数,再由LR组装为soap报文后,再发往接口进行调用,因此LR在组装报文时,会有相应时间的耗费。LR脚本中创建的事务,就包含了这段组装报文的时间,因此响应时间会比SoapUI的响应时间更大。LR与SoapUI的差别应该还有更多,在此我尚未研究的更深入。

对于LR,在测试中若增加对返回结果的校验,也会耗费一定的时间,从上面的数据可以看出,时间差大约0.12s左右,这也与校验中使用的方法有关系,如果方法高效的话,这个时间差也将更少。

全 SoapUI提供的结果数据的分析不如LR那么详细与全面,但对于接口级的测试已足够,且速度更优。

   女人的情色电影笔记本   游戏测试:三国时期谁是你最好的兄弟!!   你不得不信的星座秘密

相关 [soapui 服务 模拟] 推荐:

谈基于SOAPUI进行服务模拟和自动化测试

- - 人月神话的BLOG
SOAPUI是常用的一种Web Service测试工具,既可以测试SOAP WebService也可以测试Restful WebService. 基本的对服务进行测试的过程不再讲,最近研究服务模拟和服务自动化测试,发现SOAPUI本身也同样具备这部分的功能. 对于服务模拟Mock Service. 前面一篇文章谈到过服务模拟器,准备开发一个通用的服务模拟器,也解决服务模拟的问题.

Fio模拟Mysql服务器IO压力脚本

- 狗尾草 - Erlang非业余研究
原创文章,转载请注明: 转载自Erlang非业余研究. 本文链接地址: Fio模拟Mysql服务器IO压力脚本. fio是个非常好用的io压力模拟工具,功能非常齐全, 有兴趣的同学参看 这里. 这里我用fio模拟我们线上mysql服务器的压力来为厂家送来的pci-ssd卡做压力测试,底下是脚本(已经测试正确),也许有的同学有用.

迅雷年费VIP模拟服务器,基本模拟全部功能,人人都是年会VIP

- 米 - 『澄空学园』
完全模拟离线下载服务器,和官方离线下载的界面和使用方式基本一样,. HTTP链接和EMULE链接、磁链、 BT上传功能    完全支持,操作和官服一样. 文件邮           完全支持,操作和官服一样. 直接高速下载    支持,下载前需修改一次COOKIE,见下面说明. 暂停和重新开始        支持 <---当同时进行任务数达到6时请自己调整.

JavaScript PC 模拟器

- kira - LinuxTOY
很难想象竟然用了这么久,Linux 才可以运行在浏览器的 JavaScript 引擎里面,要知道2008 年就可以在土豆上运行了~. 作者 Fabrice Bellard 使用 JavaScript 编写了一个简单的 PC 模拟器,包含32位 x86 兼容 CPU、8259 可编程中断控制器、8254 可编程中断计时器.

JavaScript Gameboy Color模拟器

- ashuai - Solidot
程序员Grant Galitz发布了一个用HTML5/JavaScript编写的GameBoy Color模拟器(源代码),可以运行储存在本地的ROM镜像,游戏运行速度正常. 也有其他开发者用JavaScript编写出了启动Linux的X86模拟器.

地形模拟演示Demo

- kongshanzhanglao - 博客园-首页原创精华区
地形渲染的首先是创建一个三角网络平面,然后调整平面顶点的y高度值,模拟地面的山丘和山谷,最后再绘制贴图效果. 本文首先介绍如何生成三角网络平面. 然后介绍如何通过高度图调整平面高度. 以及使用BlendMap和3种材质绘制贴图效果的方法. 最后演示如何调整摄像机位置和移动速度,在地面上行走. 一个m*n个顶点的平面由2*(m-1)*(n-1)个三角形组成.

服务禁语

- tiancaicai - 白板报
前几天在一个公交汽车站拍到了一张规定,里面规定了服务禁语和礼貌用语,看了大乐. 3、乘车高峰车厢内拥挤时,禁语:“快往里走,站在前面又没有钞票检. ”文明语:“请尽量往里走,照顾没有上车的乘客”. 4、车子抛锚,禁语:“车子抛锚没有办法,人都要生毛病的,车子坏了也正常. ”文明语:“对不起,车子出现故障修一下,请大家理解.

服务熔断

- - CSDN博客推荐文章
服务熔断也称服务隔离,来自于Michael Nygard 的《Release It》中的CircuitBreaker应用模式,Martin Fowler在博文 CircuitBreaker中对此设计进行了比较详细说明. 本文认为服务熔断是服务降级的措施. 服务熔断对服务提供了proxy,防止服务不可能时,出现串联故障(cascading failure),导致雪崩效应.

模拟银河系的演化

- Yan - Solidot
加州大学Santa Cruz分校和瑞士苏黎世理论物理研究院科的科学家利用NASA的Pleiades超级计算机,历时9个月时间的运算,模拟了星系的起源和演化. 预印本发表在arXiv.org上. 他们所模拟的星系称为Eris. 研究小组首先从低分辨率开始,模拟最初的暗物质演化成一个类银河星系的控制中心,然后放大中心光环区,引入气体粒子并大幅度提高分辨率,再追踪粒子间的相互作用的演化.

俄亥俄州模拟僵尸入侵

- phus - Solidot
俄亥俄州特拉华县(Delaware County)联邦紧急事务管理局举行了一场僵尸入侵模拟演习,有超过225个志愿者打扮成了僵尸. 组织者希望,僵尸主题的模拟演习能比工业事故或车祸演习吸引更多的人参与. 当地的一位发言人称,特拉华县的人迷上了僵尸. 这一演习是受到了美国疾病控制和预防中心的僵尸预警指南的启发.