挑战 【扩展信息:9月4日DearBook的书友会小记】
以下所述及的示例的环境由weblogic server 8.1与microsoft windows .net构成,二者所用操作系统均为windows 2000. 测试web services的有效性.性能.可伸缩性.可靠性以及安全性时所面临的主要挑战是 web services的分布性. 为了使完整的web services能够实现预期的功能,就要求客户端与服务都要满足一系列的要求.接口必须在其wsdl文档中正确描述出来,消息必须遵守传输协议规范(如http1.1)与消息协议(如soap 1.1).同时消息必须遵守描述该服务的wsdl文档中的契约,要求同时考虑到消息的内容与传输层的绑定.加上综合的安全条款.互操作性问题.uddi注册要求以及一定负载下的性能需求,就很容易发现为什么网络测试不是无足轻重的事情. web services组件可由多个利益相关者来共同构建与部署.因此,测试这些组件过程中会发现确定代码质量.可用性等都有很大的难度.web services的标准是简单的,数据驱动的,并且共享一个公共的基于xml的基础.传统的测试工具可能不足以有效地测试这些标准.而且gui自动化工具也不足以有效地测试web services的接口点与消息格式.功能测试
该测试的目标相当直观易懂:确保服务器能够对给定的请求发送正确的响应.然而,由于web services的复杂性,该任务原非想象的那么简单.对于大多数的web services而言,它不可能精确预见客户端会发来什么类型的请求.枚举所有可能的请求并不切实可行,因为可能输入的空间要么是没有边界,要么就是无穷大.因此,验证服务器是否能处理大范围的请求类型与参数是极其重要的. public boolean execute(string action, string symbol, int quantity) throws javax.xml.soap.soapexception{ detail detail = null; detail = soapfactory.newinstance().createdetail(); detail.addchildelement( "stock trade" ).addtextnode( "failed" ); system.out.println("execute() in webservices.stock.trade webservice has been invoked with following arguments:: action:" + action + " symbol:" + symbol + " quantity:" + quantity); if(action == null) { throw new soapfaultexception(new qname( "http://stocktrade/execute", "serverfailed" ), "action parameter is null.",... 下一页