开源的Web Service测试工具 软件测试
原文:
Three open source Web service testing tools get high marks - Capable soapUI, TestMaker, and WebInject toolsets shine once you conquer their learning curves
- Rick Grehan
由于IT界对Web services的持续关注和偏爱,以及越来越多的Web-service构建工具的出现,Web service变得更加容易创建 – 并且,很容易一团糟。
Web service其实是一些暴露给网络(不管是内网还是外网)的程序的集合。而一个Web service的错误可能激怒的不仅仅是监视和维护着服务器的经理和管理员,还有调用了你的Web service的客户。要么把你的Web service做好,要么等着两边的指责。
在本文中,我会分析3款声称能验证你的Web services的正确性的工具:soapUI、TestMaker和WebInject。三款都是开源的,能免费下载并整合到你的下一个Web services项目中去。
需要注意的是:在使用这些工具之前你应该理解SOAP和HTTP协议。有些商业产品提供的是SOAP的“伪代码”。把那些难于阅读的XML翻译成易读的伪代码,能帮助新手和有经验的SOAP用户明白某个SOAP请求和响应之间发生的事情。这三款开源的Web service测试工具需要额外的工作,我推荐中等级别的开发人员使用,学习曲线会适当地比商业产品的长。
SoapUI1.6
我用的是1.6版本的soapUI,一款从Eviware而来的基于Java的工具。这个版本的soapUI在自己独立的UI里执行;新的1.7版本包括NetBeans、InterlliJ和Eclipse的插件。
用户界面遵循普遍的IDE架构设计:左边是导航面板,右边是内容面板,额外的属性面板放在底部。如果你用过类似Visual Studio的IDE的话,你会发现使用soapUI很顺手。
soapUI把工作组织成项目。每个项目主要由需要测试的接口来识别。在这里,接口是指另外一端的指向一个暴露了Web service方法的站点的URI(统一资源标识)。你可以很快地创建一个基本的项目结构;soapUI能接受一个文件的WSDL或者一个Web service终点传输的WSDL。
项目被有层次结构地组织,并且包含一个或多个TestSuite,TestSuite包含一个或多个TestCase,TestCase包含一个或多个测试步骤。真正的工作 – 发送请求、接受响应、分析结果、改变测试执行流程 – 发生在测试步骤这个层面。TestCase收集和组织需要执行某个对目标的特定操作的步骤。TestSuite汇总那些发生在某个特定区域的Web service的TestCase(例如订购一本书所需要的操作)。你可以通过右键点击项目树中的父节点并选择上下文菜菜单中的“New”菜单,来创建新的TestSuite、TestCase和测试步骤。
soapUI通过检查附加给测试响应的断言来判断测试是通过还是失败。有大量的断言可供选择,从“simple contains”测试 – 如果某个提供的字符串匹配则表示成功 – 到“XPath matching”,对响应信息执行复杂的XPath表达式匹配成功则表示测试通过。
测试步骤与程序代码很类似。目前,soapUI定义了6个测试步骤类型,普遍的是请求(Request),发送一个HTTP请求给目标地址,并接收一个响应。可插入条件跳转测试步骤(Conditonal GoTo)来控制流程。一个或多个检查近的响应的Xpath表达式是必不可少的。第一个表达式的成功会导致相关测试步骤分支的执行。