77范文网 - 专业文章范例文档资料分享平台

WebService 功能测试 - 图文

来源:网络收集 时间:2020-02-20 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

WebService 功能测试

作者:冰雪

摘要:由于WebService的平台无关性,使用越来越多,所以对WebService的测试也越来越受关注,本文整理了WebService的功能测试方法,包括编码方式和工具方式。

关键词:WebService测试

1、WebService简述

WebService是一种革命性的分布式计算技术,本质上就是服务提供方发布一些服务(实现一定功能的函数接口)到网络上,服务使用方如果使用到该服务的功能,直接在网络上调用服务接口就可以了,无需自己重新开发。

那么,服务使用方(我们称之为客户端)是如何使用服务方发布(我们称之为服务端)的WebService服务的呢?这里简要介绍:WebService发布后,其服务是封装在一个wsdl(Web Service Description Language,Web服务描述语言)文件中,客户端发请求主要是向发布好的wsdl地址以SOAP方式发请求,调用过程如下:

服务端生成服务描述文件,以供客户端获取。

客户端取得服务端的服务描述文件,解析该文件从而获得服务端的服务信息以及调用方式。

客户端指定调用方法和参数,生成恰当的SOAP请求消息,发往服务端,并等待服务端返回的SOAP回应消息。

服务端接收客户端发来的SOAP请求消息,解析其中的方法调用和参数格式。并根据wsdl的描述,完成指定功能,将返回值放入SOAP回应消息返回给用户。 客户端解析得到的返回值。

使用WebService的优点是一次开发多次使用,且由于WebService的平台无关性特性,使用越来越多,所以对WebService的测试也就显得越来越重要。

2、WebService功能测试方法

WebService测试最基本的是功能测试,即验证功能的正确性。另外由于服务发布后会由多个客户端进行调用使用,所以性能测试也是一个重要测试内容。

本文只涉及了功能测试部分。功能测试分为编码方式(通过编码测试接口的正确性)和工具方式(通过测试工具测试接口的正确性)。

对于编码方式:WebService常用的框架有axis、xfier、cxf等,对应的有相应的测试方法。

对于工具方式,商用的就不考虑了,免费的工具中有TestMaker(较复杂,需要学习java和Python,学习曲线长)、WebInject(需要懂得soap原理,开发人员用得多)、WSCaller(工具过于简单,只能进行简单的功能测试)、soapUI开源版本(该工具由Java语言开发,有Eclipse插件。脚本语言Groovy是类Java的轻量级脚本语言。组织目录由TestSuit和TestCase构成)。其中的soapUI使用较多,尤其是对懂得Java的人来说上手较快。本文只对soapUI工具测试WebService的方式进行介绍。

3、编码方式

针对WebService常用的框架axis、xfire、cxf,该部分描述了4种WebService功能测试方法及其具体步骤。

使用的开发和测试环境是eclipse3.6.2。

具体步骤中使用了一个HelloWorld的例子进行说明,其中包含两个接口: public interface HelloWorldService{

public String sayHello(String name); public String sayWords(String?words); }

函数功能如下:

Public class HelloWorldServiceImpl implements HelloWorldService{

Public String sayHello(String name){ String words = “Hello,World!”; If(StringUtils.hasText(name)){ Words+=””+name;

}

System.out.println(words); Return words; }

Public String sayWords(String?words){ String theWords = “Hello,”; If(words!=null){

theWords+=StringUtils.join(words); } Else{

theWords+=”nothing to say”;

}

System.out.println(theWords); Return null; } }

3.1 使用Axis测试接口(wsdl服务地址)

该部分使用wsdl的服务地址进行测试。 注:axis包,是个WebService的工具。 官方地址:http://ws.apache.org/axis/

3.1.1 导入相应的包

需要导入的包如下14个:

Activemq-4.0-M3.jar Axiom-api-1.2.7.jar Axiom-impl-1.2.7.jar Axis-1.4.jar Axis2-1.4.jar

Commons-httpcliect-3.1-rcl.jar Data-management-cli-1.2.2-app.jar

Dspace-lni-client-1.5.1-jar-with-dependencies.jar Jsr173_1.0_api.jar Neethi-2.0.1.jar

Openejb-itests-standalone-client-3.1.jar Woden-api-1.0M8.jar Wsdl4j-1.6.2.jar Xmlschema-1.4.1.jar

3.1.2 编写测试代码

Helloworld的测试代码如下:

Package com.ruijie.samples.helloworld;(包名可以任意取) Import org.apache.axis.client.Call; Import org.apache.axis.cliect.Service; Import javax.xml.namespace.Qname;

Public staic void main(String[] args){ Try{

String endpoint =

http://localhost:8089/HelloWorldServiceComponent/HelloWodldService; Service service = new Service();

Call call = (Call)service.createCall();

Call.setTargeEndpointAddress(new java.net.URL(endpoind));

Call.setOperationName(new

Qname(“http://HelloWorldService.sca.helloworld.samples.ruijie.com/”,”sayHello”));

Strings ret =(String)call.invoke(new Object[] {“aaa”}); System.out.println(“Sent ‘aaa’,got””+ret+””); }

Catch(Exception e){

System.err.println(e.toSting()); } }

或者:

Package com.ruijie.samples.helloworld;(包名可以任意取) Import org.apache.axis.client.Call; Import org.apache.axis.cliect.Service; Import javax.xml.namespace.Qname;

Import javax.xml.rpc.ServiceException;

Import java.net.MalformedURLException; Import java.rmi.RemoteException; Public static void main(String[] args) throws RemoteException,ServiceException,MalformedURLException{ Service service = new Service();

Call call = (Call)service.createCall(); Call.setTargetEndpointAddress(new

java.net.URL(“http://localhost:8089/HelloWorldServiceComponent/HelloWodldService;”)) Call.setOperationName(new

Qname(“http://HelloWorldService.sca.helloworld.samples.ruijie.com/”,”sayHello”)) Call.setUseSOAPAction(true);

Call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);

Call.setSOAPActionURI(“http://HelloWorldService.sca.helloworld.samples.ruijie.com/”,”sayHello”);

String k = (String)call.invoke(new Object[]{});//因为返回值是String类型,所以这里调用的返回值也是String类型

System.out.println(“>>>”+k);//返回值输出 }

3.2 使用Xfire测试接口(wsdl文件)

前置:创建测试工程。New-project-Dynamic Web Project

3.2.1 导入相应的包

需要导入的包如下6个: Xfire-call-1.2.6.jar Spring-core-2.0-rc2.jar

Commons-httpclient-3.1-rc1.jar Data-management-cli-1.2.2-app.jar

Dspace-lni-client-1.5.1-jar-with-dependencies.jar XmlSchema-1.4.1.jar

3.2.2将wsdl文件导入到工程的src目录下 3.2.3 编写测试代码

Helloworld的测试代码如下:

Package com.ruijie.samples.helloworld;(包名可以任意取) Import org.codehaus.xfire.client.Client;

Import org.springframework.core.io.ClassPathResource; Import org.springframework.core.io.Resource;

Public class WebServiceClientTest{

Public static void main(string[] args) throws Exception{

WebServiceClientTest test = new WebServiceClientTest(); Test.testClient(); }

Public void testClient() throws Exception{

String wsdl = “HelloWorldService.wsdl”;//对应的WSDL文件 Resource resource = new ClassPathResource(wsdl);

Client client = new Client(resource.getInputStream(),null);//根据WSDL创建客户实例

Object[] objArray = new Object[1];

objArray[0] = “tianXX”;//调用特定的Web Service方法 Object[] results = client.invoke(“sayHello”,objArray); System.out.println(“result:”+results[0]); } }

3.3 使用Cxf的java2wsdl工具测试接口

该部分描述了使用cxf的java2wsdl工具(命令行方式)测试webservice接口步骤。3.3.1 下载安装JDK并配置环境变量

也可直接使用开发环境eclipse的jdk。

3.3.1.1 打开下载地址

地址:(略)

3.3.1.2 下载、安装JDK

版本:jdk-6u7-windows-i586-p.exe

点击运行安装,选择默认安装目录:C:\\Program Files\\Java\\jdk1.6.0_07

3.3.1.3 配置环境变量

JAVA_HOME= C:\\Program Files\\Java\\jdk1.6.0_07 CLASSPATH=.; C:\\Program Files\\Java\\jdk1.6.0_07\\lib\\tools.jar; Files\\Java\\jdk1.6.0_07\\lib\\dt.jar; C:\\Program Files\\Java\\jdk1.6.0_07\\bin; Path= C:\\Program Files\\Java\\jdk1.6.0_07\\bin;(这个放到path的开头)

C:\\Program

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库WebService 功能测试 - 图文在线全文阅读。

WebService 功能测试 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/743850.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: