最近一直在做WebService的测试,考虑到手工测试的困难,所以特意去寻找好的测试工具,现在做一个整理。
1. HP Service Test
HP 还有一款软件叫 Service Test。 最新版本11. 这款软件以前用的是 load runner的后台技术。在最新版本里,ST11 开始应用QTP 后台技术。这个软件有更丰富的用户界面和扩展空间。
2. QTP + WebService Add in
用过QTP的人都知道,HP 在新版本里边加入了 service test add-in。用这个组件,测试员就可以测试 Web Services。 可是,这个组件并不是很好用。我们经常遇到很多问题。别的测试软件可以测的Web Services, QTP 就是不行.
3、.NET WebService Studio
这款工具出自微软内部,最大的优点是可视化很好,不用去看那些XML文件,WebService的基础内容就有XML,但是测试中Case过多,每次测试结果都去看XML文件,看一轮下来对个人的视力是个很大的损害。
从上图可以看到,操作上也很方便,只需要把Service部署到IIS后,在WSDL EndPoint中输入这个要测的Service的URL,点击Get按钮,就能把Service要输入的参数列表取出来,测试的时候只需要在输入参数的值,点击Invoke按钮,就可以得到结果,结果也是一样,一边为参数,一边为值,检查起来很方便。同时参数的类型也能显示出来。
但是缺点就来了,每一个Case都需要输入一次,不能做到测试驱动。这样如果有1000个Case,要输入1000个,效率比较低。
4、WebTest From VSTS
这个在VSTS For Testers读书笔记中介绍过,具体可以参见Mango的文章,http://blog.joycode.com/mango/archive/2007/02/28/94002.aspx,很好地实现了数据绑定,不过结果还是需要一条一条Check,不过WebTest已经提供了很好的验证规则,可以将预期的结果与测试结果作比较。不过顺便提下就是测试结果居然不能被拷贝出来,这个让我很郁闷。
新的问题
不过到这里还没有结束,前面说的Service都是可以部署到IIS里的,接口是Public的,
但是现在做的项目使用WCF Service,不是Public,不部署到IIS了,都是Host到系统的服务中。
这样上面的两款工具都不支持,那么考虑首先去找是否有适合的工具,不行的话就只能自己团队内部开发了。
5、SOATest
SOATest是由Parasoft出品的,原来叫作SOAPTest,它是使用WSDL通过描述服务和标识位置来控制对Web service的访问。它提供了WSDL验证、单元测试、功能测试和性能测试,支持多个数据源,是一款专业的Web Service测试工具。具体介绍可以到官方网站访问http://www.parasoft.com/ ,官方网站提供试用版下载,目前已经是5.0的版本了;另外在《SOAPtest--一个有用的Web service测试资源》这篇文章中有具体的介绍。
但是看了SOATest的教程文档,似乎输入都需要为WSDL的URL,对这个工具的使用还不是充分了解,希望熟悉此工具的人士不吝指点一二。
4、自主开发工具
主要思想是,先从Dll文件中取出各个Service的XML Schema文件作为模板,
将测试数据传入模板测试Service。
6、小结
现在很多系统都开始使用面向服务的架构,很多业务功能都通过Service实现,测试的时候通过UI往往不能发现深层次的问题,通过测试Servce可以增加覆盖率,不过以往工作中接触的较少,希望通过大家的讨论来形成一种比较合适的测试方法。