1、.NET WebService Studio
2、WebTest From VSTS
3、SOATest(本公司所使用的测试WebService接口工具)
4.自主开发工具(EditorForm)
备注:现在很多系统都开始使用面向服务的架构,很多业务功能都通过Service实现,测试的时候通过UI往往不能发现深层次的问题,通过测试Servce可以增加覆盖率,
一.webservice接口测试的方法很多,比如通过HTTP发送soap包、通过接口代理直接调用webservice中包含的方法等等。测试工具也是五花八门,比如QTP、SOATest、Soaptest等等。你可以编写一段脚本来执行你的用例,也可以直接使用相关测试工具进行接口,根据个人的爱好。总之XML webservice接口的测试是十分灵活和十分有趣的。
简单的说几个webservice测试方法,分别从webservice测试脚本和webservice测试工具两个方面去窥探接口测试
先看接口实例。
webserviceURL:http://fy.webxml.com.cn/webservices/EnglishChinese.asmx (WEB服务引自:http://www.webxml.com.cn/)
WSDL:http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?WSDL
我们将要测试的是这个接口中的“TranslatorSentenceString”方法。
二.在接到一个webservice测试需求的时候,我们需要和开发的过程一样,有一个需求的测试和文档的确认过程。一个很好的webservice测试过程应该是建立在前期丰富的需求讨论和文档测试的基础上。需求讨论的越充分,后期接口架构的改动越小;文档测试的越充分,接口的质量会更高。
webservice测试的需求讨论,往往会围绕接口的实用性、可行性、可扩展性、适用性以及全面性来展开。文档的测试主要是从两个方面去实施:接口定义文档(或称为接口开发文档)、WSDL文件。
接口定义文档是我们熟悉接口和编写测试用例的主要依据,文档的正确性和可靠性直接关系到测试的质量。一般来讲一个接口定义文档一般包括:实现方、提出方(或调用方)、功能说明、接口包含的方法及涉及的对象定义、每个方法对应的参数和每个方法的功能、接口的输入定义(方法的传入参数定义)、接口的输出定义(方法的返回结果)、接口架构的简单说明、接口的实现方法等。我们需要针对上述的内容进行接口定义文档的测试,确保文档的正确性。
三.WSDL文件是webservice测试中重要的一环。WSDL文件我们可以简单的认为就是接口定义文档的实例化。我们只要结合文档来比对WSDL文件,分析WSDL文件是否和接口定义文档所要求的一致。
1、如何获取WSDL文件。
使用IE打开http://webserviceURL?WSDL,然后将打开的页面保存为WSDL格式即可。比如前面提到的实例“http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl”。
2、如何对比WSDL文件和接口定义文档。
你可以使用WebserviceStudio这个小软件。下面用前面的实例来说明一下如何来对比WSDL和接口定义文档。
(1)使用WebserviceStudio读取WSDL。
(2)对比WSDL与接口定义文档。(实例仅对比一个方法)
实施webservice测试的方法很多,其原理基本都一样。这里原理就不谈了,直接入主题,先看第一种测试方法。
首先再次回顾一下前面的提到的需要测试的方法。
接口地址WebserviceURL:http://fy.webxml.com.cn/webservices/EnglishChinese.asmx
需要测试的方法:
TranslatorSentenceString
解决方案如下:
1、visual studio 2005,新建一个控制台应用程序。
2、添加一个webservice引用。
优缺点:
操作上方便,只需要把Service部署到IIS后,在WSDL EndPoint中输入这个要测的Service的URL,点击Get按钮,就能把Service要输入的参数列表取出来,测试的时候只需要在输入参数的值,点击Invoke按钮,就可以得到结果,结果也是一样,一边为参数,一边为值,检查起来很方便。同时参数的类型也能显示出来。
缺点就是每一个Case都需要输入一次,不能做到测试驱动。效率比较低。
四.把需要测试的webservice简单的提一下:
webserviceURL:
http://fy.webxml.com.cn/webservices/EnglishChinese.asmx
需要测试的方法为:
TranslatorSentenceString
需要传入的参数为一个字符串对象
接口返回的结果为一个字符串数组对象
下面开始谈第二种测试方法。
由于这个测试方法已经很常见了,我这里就通过实例来说明。
通过VS2005新建一个webtest