(四)使用 Rational Application Developer V6.0 开发、测试并部署 Web 服务

发表于:2007-7-30 16:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Gilbert Andrews    来源:网络转载

Web 服务测试


        Rational Application Developer Web 服务向导中包含了广泛的 Web 服务功能。在使用 Web 服务向导创建 Web 服务的过程中,有两个可以进行测试的阶段:

        在最初创建完服务并将服务部署到 服务测试页上面之后。 
        如果用户选择了生成客户程序,那么就等到在 客户程序测试页面上创建了客户程序之后。 
        如果查看 图 11 您会见到两种不同的测试 Web 服务的方法。这些方法对应于 Web 服务向导中的不同测试页面。对于第一种测试方法,可以直接使用 WSDL 中的信息。客户程序要获得服务的位置并形成正确的 XML 信息发回到 Web 服务。Web 服务浏览器使用这种方法来测试 Web 服务。该选项会在用向导创建 Web 服务之后立即出现。通常使用这种方法来确保 Web 服务像设计中一样工作(在生成客户程序之前)。

 

        图 11: Web 测试应用程序概述

                        
        另一种测试 Web 服务的方法是生成包含 Java 代理的 Requestor 文件并用 Java 客户程序调用 Java 代理中的方法。要记住向导生成的 Requestor 文件是基于 WSDL 的。 像其他服务测试页一样,客户程序测试页也有扩展点,这些会提供将测试客户程序包含到向导中的功能。这个实例提供了两个 Java 测试应用程序:GSTC 和 UTC。 这两个测试客户程序都将复杂 bean 作为参数处理。复杂 bean 中有除基本类型和字符串的其他类型。

        GSTC 由四个基于代理中所包含的方法的 Java Server Page (JSP) 组件组成。对于用户来说,GTSC 就是一个有关如何设计基于 Web 的客户程序的指南。GTSC 使您键入输入参数信息并调用操作。因为很容易使用,所以在做简单测试时,它经常是受欢迎的选择。

        UTC 同样是一个基于 Web 的测试方案。它动态地加载代理中的 Java 操作并提供调用操作的功能。UTC 能够处理大多数复杂类型且是复杂测试的最好选择。

Java 测试客户程序


        当在 Web 服务向导中生成 Requestor 时,有大量文件自动生成.这些文件的生成使得访问 Web 服务变得很容易.现在可以在一个 Java 文件上直接 build 您的客户应用程序.顶层文件称为代理文件.在 Rational Application Developer 环境中,该文件被创建到客户应用程序项目中。用服务来命名代理并将其放置于客户端的文件夹中(包(文件夹)名是根据 WSDL 名称空间而定)。

Rational Java 测试客户程序客户端


        在客户程序生成之后,您可能想要建立自己的符合特定需要的 Java 客户程序(基于实例提供的代理)。这需要花费时间,并且您可能想要测试已生成的客户程序以确保其能像设计中一样工作。Rational 提供了 GSTC 和 UTC 来实现该目标。二者都有优势和劣势,这些将在本文最后进行讨论。根据要做的内容,您可以选择其中一种。

        那么 Java 测试客户程序是如何工作的呢?答案很简单。Java 测试客户程序的主要目的是在运行时调用 Java 代理上的方法。查看 图 12 您会看到在代理中生成了两个方法。您会发觉在 SEI 文件中的这些方法和在端口部件下的 WSDL 文件中的这些方法是不同的。这两种方法存在于最初自底向上方案中的 Java 类中。

 

        图 12:MortgageCalculatorProxy (代理 bean)类中的方法

                  

        图 13: 最初的 MortgageCalculator (服务 bean)类中的方法

                  

        如果您建立自己的客户程序,就要有一个用户接口,或者决定要一个直接调用这些方法的自动系统。出于测试的目的,假设您要输入信息并手动调用方法。

 

        图 14: 用 Java 测试客户程序在运行时测试基于类的 Java Web 服务

                     

有效地使用 Java 测试客户程序


        以下是一些单凭经验的方法,这些方法可以帮助您创建与 Java 测试客户程序友好的 Web 服务。在极大程度上,顶层的服务 bean 可以有一些不符合 bean 的规范格式的方法 (参见 参考资料)。建议所有类型结构都依照 bean 的规范。

Generated Sample Test Client (GSTC)


        GSTC 是一个基于 Web 的关于如何利用 JSP 页面创建客户程序来调用服务的示例。实际上 GSTC 只对 Web 服务进行了一点点测试,因为它的接口很简单,但是它的目的是提供一个用客户端文件建立基于 Web 的客户程序的着手点。

        GSTC 由四个 JSP 页面组成 (参见 参考资料)。JSP 技术允许 HTML 与 Java 代码混合存在。JSP 需要寄放在 Web 服务器上。 图 15 显示了一个 GSTC JSP 页面如何工作的概述。服务器通过 JSP 页面读取(数据)并生成一张用户在浏览器中见到的 HTML 页面。用户选择方法,输入与服务相关的数据并提交给 Web 服务。 服务器把数据传到 JSP 页面上,JSP 页面会处理数据并向 Java 代理发送请求。Java 代理将这些信息通过 webservice 运行时发送给真正的 Web 服务。

 

        图 15: GSTC JSP 页面概述
                

自定义 GSTC


        在 Web 服务向导中建立的客户程序实例处理了许多在 Web 服务中常用的类型,但是对于某些类型,特别是在处理某些如输入(input)的类型时,示例没有为其生成代码。一些普通的例子如数组、聚集和映射。可能还要确定某些未处理的异常。

Mortgage Calculator 实例


        抵押计算器是一个实例,任何考虑过买房的人都会对它很熟悉。用户输入所有的财务信息并得到一个用户可以负担的金额数量。实例中的抵押计算器接收月收入、账单、租金、百分比例和抵押期限。如您在 图 16 中所见,数组表示 income 和 bills。为贴近事实,要有多于一笔的收入和多于一张的账单。

 

        图 16:MortgageInfo bean
                    

        如果查看 图 16 中的代码,您会看到这个 bean 符合 bean 的规范。每个属性都是由小写字母组成,并且根据 bean 的规范,所有属性都有获取方法 (getter)和 设置方法(setter)。该类在极大程度上延续了 Java 测试客户程序中最好的实现部分。然而,数组导致了 GSTC 出现问题。您可以自定义 GSTC 来调整这一点,如我待会要展示的一样。

        下 图 17 中显示了一个做了所有工作的类并且是真正的 Web 服务类。MortgageCalculator 有两个方法分别称为 calculateMortage 和 MortageInfo,如 图 15 中看到的。calculateMortgage 有一个输入参数。Calculate 有两个 double 型的输入参数。只有在方法中的参数需要遵照 bean 规范。因此,calculateMortgage 方法得到从 MortgageInfo 类收集来的信息并计算用户每月所能负担的金额。当抵押期限大于二十五年时,程序还会抛出 TermException 异常。

 

图 17:MortgageCalculator 类
     
                    

上页链接                                                                                                                    下页链接

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号