如何利用XMLSpy工具测试Webservice?

来源:互联网 发布:淘宝直通车点击率低 编辑:程序博客网 时间:2024/06/01 08:54
WebService实现了跨平台的可互操作性。为了达到这一目标,WebService完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台,因此webservice的应用非常广泛。
        Webservice的功能测试是测试工作中非常常见的,对其的测试方法也是千差万别,各有特点,本文以一个webservice的功能测试为例,对常见的几种测试方法进行解析,说明不同测试方法的适用范围和情况。
使用XMLSpy进行测试
        XMLSpy是业界标准XML的开发环境,可用于涉及XML、XMLSchema、XSLT、XQuery、SOAP、WSDL和Web服务技术的企业级应用的设计、编辑和调试。我们正是利用XMLSpy的SOAP调试特性,来进行与WebService有关的接口测试。为了更直观的再现使用该软件的测试方法,我们将会引用实例进行介绍。
        此处只介绍与测试相关的使用方法,对于XMLSpy其它功能请参看软件自带的帮助说明。
        首先,运行XMLSpy,笔者使用的是XMLSpy 2006。选择文件-〉打开,导入从WebService导出的含有XML代码的接口文件。
        导出方法:在IE浏览器内直接输入要调用的接口地址,我们在此处做个假设地址:http://10.17.34.244:8801/WebServices/WSBusiness.jws?WSDL,将返回的结果另存为后缀是wsdl的文件,这里命名为getAllInfo.wsdl,然后用XMLSpy加载它。
        成功加载后,选择下方的“文本“,这样就可以修改getAllInfo.wsdl的代码。去掉代码中含有“fixed=”的内容,
例如:查找结果 <xs:element name="code"type="gsta:LimitCodeCode" fixed="WEEK_DAY"/>修改结果 <xs:element name="code"type="gsta:LimitCodeCode"/>然后,指定其要调用的WebService地址,前面假设了一个地址“http://10.17.34.244:8801/WebServices/WSBusiness.jws?WSDL”,在getAllInfo.wsdl查找到下面这段代码(一般是最后一句):<port name="WSBusinessSoap"binding="s0:WSBusinessSoap"><soap:addresslocation="http://localhost:7001/WSBusiness.jws"/></port>将中间的URL替换为接口地址:<port name="WSBusinessSoap"binding="s0:WSBusinessSoap"><soap:addresslocation="http://10.17.34.244:8801/WebServices/WSBusiness.jws?WSDL"/></port>保存修改,并关闭getAllInfo.wsdl。
       当然,如果WebService服务器与测试机在同一局域网内,我们也可以利用XMLSpy直接调用WebService接口。选择SOAP-〉创建新的SOAP请求 ,输入要调用的接口地址http://10.17.34.244:8801/WebServices/WSBusiness.jws?WSDL,确定后就可以看到要测试的接口。        经过上述的准备工作后,就可以开始正式的测试工作。选择SOAP-〉创建新的SOAP请求,加载刚刚修改过的getAllInfo.wsdl,加载过程需要调用WebSerivce,所以要注意保证网络的畅通,成功后就会看到要测试的接口了。
 
      选择要测试的接口后,以SOAP作为协议的XML代码就展现在我们眼前了。想了解这段接口代码中各个字段的具体含义,请参看相关的XML语法,这里就不再重述了。接下来我们就可以按照设计文档中的约定将测试参数填入相应的位置。这里我们将String替换为测试数据:<in0xsi:type="m:GetUserInfoByIpRequest">  <IPAddressxsi:type="xsd:string">10.17.34.85</IPAddress>  <operatorxsi:type="xsd:string">root</operator></in0>这里的意思是使用管理员账号root,为用户指定新的IP地址10.17.34.85完成测试数据的准备后,选择 SOAP-〉发送请求给服务器,就可以看到调用WebService接口的返回结果。
0 0