最近一直在做WebService的测试,考虑到手工测试的困难,所以特意去寻找好的测试工具,现在做一个整理。
1、.NET WebService Studio
这款工具出自微软内部,最大的优点是可视化很好,不用去看那些XML文件,WebService的基础内容就有XML,但是测试中Case过多,每次测试结果都去看XML文件,看一轮下来对个人的视力是个很大的损害。
从上图可以看到,操作上也很方便,只需要把Service部署到IIS后,在WSDL EndPoint中输入这个要测的Service的URL,点击Get按钮,就能把Service要输入的参数列表取出来,测试的时候只需要在输入参数的值,点击Invoke按钮,就可以得到结果,结果也是一样,一边为参数,一边为值,检查起来很方便。同时参数的类型也能显示出来。
但是缺点就来了,每一个Case都需要输入一次,不能做到测试驱动。这样如果有1000个Case,要输入1000个,效率比较低。
2、WebTest From VSTS
这个在VSTS For Testers读书笔记中介绍过,具体可以参见Mango的文章,http://blog.joycode.com/mango/archive/2007/02/28/94002.aspx,很好地实现了数据绑定,不过结果还是需要一条一条Check,不过WebTest已经提供了很好的验证规则,可以将预期的结果与测试结果作比较。不过顺便提下就是测试结果居然不能被拷贝出来,这个让我很郁闷。
3、新的问题
不过到这里还没有结束,前面说的Service都是可以部署到IIS里的,接口是Public的,
但是现在做的项目使用WCF Service,不是Public,不部署到IIS了,都是Host到系统的服务中。
这样上面的两款工具都不支持,那么考虑首先去找是否有适合的工具,不行的话就只能自己团队内部开发了。
4、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。
5、小结
现在很多系统都开始使用面向服务的架构,很多业务功能都通过Service实现,测试的时候通过UI往往不能发现深层次的问题,通过测试Servce可以增加覆盖率,不过以往工作中接触的较少,希望通过大家的讨论来形成一种比较合适的测试方法。