当前位置:资讯中心主页 >源码天堂 >文章内容
- 了解 WS-I 测试工具
- 来源:系统分析之窗作者:系统分析之窗 发布时间:2008-04-11 11:37:08
-
- 域名惊喜价格 cn域名1元注册
- com域名39.9元
域名注册
- 主机按月支付,低至19元/月
- 超大流量,可开子站点
虚拟主机
- 特惠VPS168元/月,4-8M独享带宽保证
- 独立操作系统,无限开站点
VPS主机
了解 WS-I 测试工具
Peter Brittenham (peterbr@us.ibm.com)
高级软件工程师,IBM
2003 年 12 月
来自IBM DW
如果你是一位 Web 服务研发人员,你就应该确保你的服务将和所有想要使用他的消费者进行互操作。这样做的最佳方法是遵循 WS-I 基本概要 1.0(WS-I Basic Profile 1.0)中列出的指导原则。如果你正在研发一个新的 Web 服务,或你有现存的 Web 服务,则 WS-I 测试工具(WS-I Test Tool)提供了一种简便的方法,能用来判断你的服务是否符合这些指导原则。在本文中,Peter Brittenham 概述了 WS-I 测试工具( WS-I Test Tool)。
引言在2003年8月,Web 服务互操作性组织(Web Services Interoperability Organization,WS-I)发布了 WS-I 基本概要 1.0( WS-I Basic Profile 1.0)。这份概要包含核心 Web 服务规范的实现指导原则:XML 1.0、XML Schema 1.0、SOAP 1.1、WSDL 1.1 和 UDDI 2.0。这些指导原则是一组需求,定义了应该怎么用这些规范来研发可互操作的 Web 服务。也能用 WS-I 测试工具( WS-I Test Tool)来验证 Web 服务是否符合这些需求。草案版(Beta 测试版)的 WS-I 测试工具( WS-I Test Tool)目前就能从 WS-I Web 站点(请参阅参考资料)下载,而最终版本应该会在今年的秋末发行。
本文描述了该测试工具的基本体系结构。我们将继续推出一些后续的文章和教程,帮助你掌控怎么运用这些工具来测试你用于互操作性的 Web 服务应用程式,及在发现你的应用程式不遵循该基本概要时应该怎样去做。
工具体系结构
WS-I 测试工具( WS-I Test Tool)包括两个工具:监视器和分析器。监视器(monitor)提供了一种不引人注意的方式来记录 Web 服务消息(通过中间人(man-in-the-middle)方法)。分析器(analyzer)的作用是判断一组 Web 服务相关的构件是否符合 WS-I 基本概要 1.0( WS-I Basic Profile 1.0)中的需求。下面是三个基本类型的构件:
- 消息(message) ?? 由监视器纪录的消息组。
- 描述(description) ?? Web 服务的服务描述(他包括所有引用的 XML Schema 定义),如果能找到 WSDL 文件的位置的话。
- 发现(discovery) ?? Web 服务的UDDI 条目,如果UDDI 条目引用基于 WSDL 的服务描述的话。
图1提供了 WS-I 测试工具( WS-I Test Tool)体系结构的概览。
图1. WS-I 测试工具体系结构

监视器概述
监视器包含两种主要功能:消息拦截器(message interceptor)和消息记录器(message logger)。消息拦截器拦截从服务请求者发送到 Web 服务和从返回到服务请求者的消息。记录器把拦截的消息的格式转换成标准的格式,然后把他们写出到消息日志中。通过使用这两种功能,一个监视器就能拦截和记录来自多个 Web 服务的消息。监视器功能是由设置文件控制的,这种设置文件定义了监视器侦听传入消息的端口和监视器应该转发该消息的 Web 服务位置之间的关联。
当使用监视器时,服务请求者能查看他,就似乎他是 Web 服务相同。所有的 SOAP 消息都发送到监视器而不是 Web 服务。由于这不是请求者的正常操作方式,所以有三种基本的方法能这样做:
- 将请求者转为指向监视器而不是 Web 服务。
- 将 Web 服务转向新的位置,并且在所在的位置运行监视器。
- 更改请求者所用的 Web 服务端点信息。
有几种系统设置能用来运行监视器。其中,由四种基本的系统设置,这些设置定义了请求者、监视器和 Web 服务能运行的系统。
- 请求者、监视器和 Web 服务运行在同一个系统上。
- 监视器运行在和请求者相同的系统上,而 Web 服务运行在另外的系统上。
- 请求者运行在和监视器和 Web 服务不同的系统上。
- 请求者、监视器和 Web 服务运行在三个独立的系统上。
图2展示了监视器的所有系统设置选择。
图2. 监视器系统设置

监视器设置文件
监视器需要一个输入文件。此文件是个包含设置选项的 XML 文件,这些设置选项告知监视器他需要监视什么和他需要在哪里记录他拦截的消息。清单1包含一个监视器设置文件示例。
清单1.监视器设置文件
1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration xmlns="http://www.ws-i.org/testing/2003/03/monitorConfig/"> 3 <comment> 4 This configuration file is used to test the LoggingFacility WS-I sample application. 5 </comment> 6 <logFile replace="true" location="log.xml"> 7 <addStyleSheet href="c:/wsi-test-tools/common/xsl/log.xsl" type="text/xsl"/> 8 </logFile> 9 <logDuration>600</logDuration> 10 <cleanupTimeoutSeconds>3</cleanupTimeoutSeconds> 11 <manInTheMiddle> 12 <redirect> 13 <comment>Redirect from port 4040 to wsi.alphaworks.ibm.com.</comment> 14 <listenPort>4040</listenPort> 15 <schemeAndHostPort>http://wsi.alphaworks.ibm.com</schemeAndHostPort> 16 <maxConnections>1000</maxConnections> 17 <readTimeoutSeconds>15</readTimeoutSeconds> 18 </redirect> 19 </manInTheMiddle> 20 </configuration>示例文件中的主要元素如下所示。 WS-I 监视器工具功能(WS-I Monitor Tool Function)规范中周详描述了所有的设置文件(请参阅参考资料)。
表1
行号 XML 元素 描述 元素内容 6-8 <logFile> 指示应该用来记录消息的文件。 将把消息放入名为 log.xml 的文件。 12-18 <redirect> 定义监视单个服务位置的参数。 此示例包含两个间接的语句,所以将同时监视两个服务位置。 14 <listenPort> 定义监视器侦听传入消息的端口。 监视器将侦听传入消息的端口 4040 和 4041。 15 <schemeAndHostPort> 定义应该发送消息的位置。 在端口 4040 接收到的消息发送到端口 8080 上的本地主机(localhost),而在端口 4041 接收到的消息发送到端口 80(缺省 HTTP 端口)上的 uddi.ibm.com。 消息日志文件
由监视创建的日志文件是个 XML 文件。这个文件包含监视器工具的运行时信息、监视器设置信息和在监视器运行时拦截的消息。能以 XML 文件的形式查看日志文件(请参阅参考资料),也能应用样式单按照 HTML 格式查看他。
分析器概述
分析器工具通过处理一组测试断言来判断 Web 服务的构件是否符合基本概要(Basic Profile)。测试断言是基本概要(Basic Profile)中一个或多个需求的可测试表达式。测试断言文件中列出了所有的测试断言(请参阅参考资料),测试断言文件是个 XML 文件,其内容是按照构件类型(发现、描述和消息)划分的。
分析器的输入包括测试断言文件的位置和对 Web 服务构件的引用。分析器的输出是一份一致性报告。在分析器的设置文件中指定了所有这些信息。
分析器设置文件
和监视器工具完全相同,分析器使用 XML 文件来定义他的设置选项。清单2包含分析器设置文件的示例。
清单2. 带有 uddiReference 元素的分析器设置文件
1 <configuration name="Sample Basic Profile Analyzer Configuration" 2 xmlns="http://www.ws-i.org/testing/2003/03/analyzerConfig/"> 3 <description> 4 This file contains a sample of the configuration file for 5 the Basic Profile Analyzer. 6 </description> 7 8 <verbose>false</verbose> 9 <assertionResults type="all" messageEntry="true" failureMessage="true"/> 10 <reportFile replace="true" location="report.xml"> 11 <addStyleSheet href="c:/wsi-test-tools/common/xsl/report.xsl" type="text/xsl"/> 12 </reportFile> 13 <testAssertionsFile> 14 c:/wsi-test-tools/common/profiles/BasicProfileTestAssertions.xml 15 </testAssertionsFile> 16 <logFile correlationType="endpoint"> 17 log.xml 18 </logFile> 19 <uddiReference> 20 <uddiKey type="bindingKey">22e841c0-0ef2-11d7-a725-000629dc0a53</uddiKey> 21 <inquiryURL>http://uddi.ibm.com/ubr/inquiryapi</inquiryURL> 22 </uddiReference> 23 </configuration>对于上面的设置文件,需要进行分析的构件包括 log.xml 文件中的消息(行16到18)、此 Web 服务的 UDDI 条目(行19到22)和由 UDDI tModel 条目引用的 WSDL 文件(也就是说不是由设置文件中的条目直接引用的)。
能在相同的设置文件中指定对发现构件(
<uddiReference>元素)和描述构件(<wsdlReference>元素)的引用。如果 UDDI tModel 包含对 WSDL 绑定元素的引用,则当指定<uddiReference>元素时,就能处理和描述相关的测试断言。下列分析器设置文件展示了怎么使用
清单3. 带有 wsdlReference 元素的分析器设置文件<wsdlReference>元素(行19到27)。这是对 WSDL 文件中绑定元素的引用。
1 <configuration name="Sample Basic Profile Analyzer Configuration" 2 xmlns="http://www.ws-i.org/testing/2003/03/analyzerConfig/"> 3 <description> 4 This file contains a sample of the configuration file for 5 the Basic Profile Analyzer. 6 </description> 7 8 <verbose>false</verbose> 9 <assertionResults type="all" messageEntry="true" failureMessage="true"/> 10 <reportFile replace="true" location="report.xml"> 11 <addStyleSheet href="c:/wsi-test-tools/common/xsl/report.xsl" type="text/xsl"/> 12 </reportFile> 13 <testAssertionsFile> 14 c:/wsi-test-tools/common/profiles/BasicProfileTestAssertions.xml 15 </testAssertionsFile> 16 <logFile correlationType="endpoint"> 17 log.xml 18 </logFile> 19 <wsdlReference> 20 <wsdlElement type="binding" 21 namespace="http://www.ws-i.org/SampleApplications/ SupplyChainManagement/2002-08/LoggingFacility.wsdl"> 22 LoggingFacilitySoapBinding 23 </wsdlElement> 24 <wsdlURI> 25 http://www.ws-i.org/SampleApplications/ SupplyChainManagement/2002-08/LoggingFacility.wsdl 26 </wsdlURI> 27 </wsdlReference> 28 </configuration>下表中描述了上面两个示例文件中的关键设置选项。WS-I 分析器工具功能(WS-I Analyzer Tool Function)规范中周详描述了所有的设置选项。
Table 2
行号 XML 元素 描述 示例内容 10-12 <reportFile> 包含输出一致性报告的文件名。 将把一致性报告输入 report.xml 文件。 13-15 <testAssertionFile> 测试断言文件的位置。 测试断言文件位于 /wsi-test-tools/common/profiles 目录中。 16-18 <logFile> 消息日志文件的位置。 消息在名为 log.xml 的文件中。 19-22(first example file) <uddiReference> 应该分析的 UDDI 条目。如果指定了 bindingTemplate 并且他引用了带有 WSDL 引用的 tModel,则还需要分析 WSDL 文件。 UDDI 条目是带有 bindingKey 值 22e841c0-0ef2-11d7-a725-000629dc0a53 的 bindingTemplate。 19-27(second example file) <wsdlReference> WSDL 文件中的位置和该文件中应该首先分析的元素。还将分析由指定的元素引用的所有元素。也需要分析所有类型和导入元素。 首先从名为 LoggingFacilitySoapBinding 的绑定元素开始分析 WSDL 文件。还将分析由此绑定引用的端口类型(portType)、操作和消息元素。 测试断言文件
下图包含某个测试断言的 HTML rendering。每个测试断言都有一个惟一的标识符,并且包含需要用于理解分析器将怎么处理该断言的所有信息。对于本例,测试断言标识符是 WSI2406。测试断言的作用是分析 WSDL 绑定元素,以验证当他用在 Body、 Fault、Header 和 Headerfault SOAP 绑定元素中时其使用属性的值是否是“文字的”。
图3. 测试断言示例

下表包含了对这个测试断言中主要组件的描述。WS-I 分析器工具功能(WS-I Analyzer Tool Function)规范中周详描述了测试断言文件中的所有信息(请参阅参考资料)。
表3
测试断言内容 描述 样本 Entry Type 将要分析的数据的主要类型。 WSDL 绑定元素。 Test Type 指示基本概要(Basic Profile)是否需求或建议一致性。 这个测试断言是需求的,因此,如果他失败,构件就不能进行一致性测试。 Additional Entry Types 处理测试断言所需的数据的附加类型。和示例相同,响应消息的测试断言可能需求分析请求消息。在本例中,请求消息将作为附加的条目类型列出。 没有附加数据是必需的。 Prerequisites 在能够处理这个测试断言之前必须传送的其他测试断言。 在能够处理这个测试断言之前 WSI2073 必须有一个已传送的结果。 Profile Requirements 对基本概要(Basic Profile)中和这个测试断言相关联的需求的引用。 这个测试断言是针对基本概要(Basic Profile)中 R2706 和 R2723 需求的。也考虑 R2707 方面的需求。 Context 必须有处理测试断言的条件。 只有当 WSDL 文件包含一个绑定元素并且该绑定元素包含带有使用属性的 Body、 Fault、Header 和 Headerfault SOAP 绑定元素时才处理这个测试断言。 Assertion Description 断言的描述。 使用属性的值必须是“文字的”。如果他不是,则这个测试文件将失败。 Failure Message 如果测试断言失败,则该消息将显示在一致性报告中。 如果这个测试断言失败了,则此消息将有助于解释为什么他失败。 对一致性报告进行概要分析
分析器的输出是一致性报告。一致性报告将包含所有被处理的测试文件的结果。实际上和消息日志文件相同,能以 XML 文件的形式查看一致性报告文件,也能应用样式单按照 HTML 格式查看他。测试断言结果由构件类型中的条目列出。例如,WSDL 文件中绑定元素的测试断言(条目)将出目前描述构件类型中。
测试断言能有五种可能的结果中的某一种:已传送(passed)、已失败(failed)、警告(warning)、notApplicable 或 missingInput。如果某个测试断言失败,则被分析的构件就不符合基本概要(Basic Profile)。当使用报告的 HTML 视图时,断言结果是按照下表中所列的方式进行彩色编码的。
表4

HTML 格式的报告中有两个摘要是 XML 版本的报告文件中所没有的。整个摘要将指示特定的构件是否符合一致性。如果整个摘要结果失败,你就应该仔细分析失败的测试断言结果以判断哪一个测试断言失败。已失败的测试断言结果由条目(例如 WSDL 绑定元素、消息日志条目 ID等等)列出。回顾测试断言描述和相关的概要需求将有助于你理解需要更改什么以使你的 Web 服务符合基本概要(Basic Profile)。
总结
本文概述了 WS-I 测试工具( WS-I Test Tool)。这些工具给 Web 服务研发人员提供了一种简便的方法,能用来判断他们的 Web 服务是否符合基本概要 1.0(Basic Profile 1.0)的需求。本系列的下一篇文章将一步一步地说明怎么安装和使用这些工具。
参考资料
- 下载 XML 格式的日志文件示例。
- 初识
WS-I 基本概要 1.0 非常好地介绍了构成此概要的规范和标准(developerWorks,2002年10月)。
- 同时参阅 WS-I
基本概要 1.0(WS-I Basic Profile 1.0)。
- 下载 WS-I
测试工具(WS-I Test Tools)。
- 阅读 WS-I
监视器工具功能(WS-I Monitor Tool Functional)规范。
- 在此能找到 WS-I
分析器工具功能(WS-I Analyzer Tool Functional) Specification。
- 查阅 WS-I
测试断言文件(WS-I Test Assertion Document)。
Peter 目前是 IBM 新兴技术组(IBM Emerging Technologies group)的 Web 服务架构师。他从2002年4月以来就一直在 WS-I 组织工具,并且是 Java 版 WS-I 测试工具( WS-I Test Tool)的架构师
以上内容由 华夏名网 搜集整理,如转载请注明原文出处,并保留这一部分内容。
“华夏名网” http://www.sudu.cn 和 http://www.bigwww.com 是成都飞数科技有限公司的网络服务品牌,专业经营虚拟主机,域名注册,VPS,服务器租用业务。公司创建于2002年,经过6年的高速发展,“华夏名网”已经成为我国一家知名的互联网服务提供商,被国外权威机构webhosting.info评价为25大IDC服务商之一。 - (阅读次数:192)
- 上一篇: 软件回归测试及其实践 下一篇: 测试工具交流和培训材料
- [
收藏] [
推荐] [
评论] [打印本页] [返回上一页][关闭窗口]



我的主机
我的域名
我的邮箱
我的VPS
我的服务器
