技术开发 频道

SOA组合业务服务的自动化测试:第1部分

【IT168 技术文章】

  引言

  组合业务服务 (Composite Business Service - CBS) 是在一起工作的业务服务和客户机现有应用程序的集合,目的是为了提供特定的业务解决方案。企业可以通过创新方式灵活地连接组合业务服务、用户界面和数据服务,以创建新的组合业务应用程序(由 Gartner, Inc. 提出的面向 aka 服务的业务应用程序)来支持业务需求。

  图 1. CBS 与业务流程的映射

  图 1 示意了 CBS 与业务流程的映射关系。业务流程由一系列业务服务实现。一个 CBS 就是这样一些业务服务的集合。集合中的业务服务应当满足这样一些条件:

  实现业务流程中的关键功能

  在行业中通用的业务逻辑

  具有标准的输入输出接口

  CBS 的出现使得基于业务流程的解决方案的实施进程大大加快。相应的对于 CBS 的测试具有以下特点:

  CBS 的通用性特点要求,CBS 要在不同软件平台环境下正确运行。

  CBS 的并非最终产品,没有(或很少)图形界面的手工测试。

  这些特点导致对 CBS 测试要求很高的自动化支持。

  3. 测试环境的框架测试环境的框架

  从操作层面来讲,作为黑盒测试,首要明确的是系统中存在哪些对外接口。图 2 是 IBM 总结的 SOA 架构概念模式,其中服务层 (Services)、业务流程层 (Business Process)、服务消费层 (Consumers),这三部分通常是要暴露给最终用户的应用接口。

  图 2. SOA 的架构概念模式

  

  图 3 展示了一个真实的测试环境的系统各个组成部分。与概念模型相对应,在这个系统中有面向业务消费者的 web 浏览器 UI,和面向业务定制者的 SCA 接口以及 Web Service 接口。

  图 3. 测试环境框架

  为了实现以上的抽象的系统框架,我们需要一些在现实世界中实际存在的产品来搭建出我们所需的真实环境。根据实现,得出如下一套方案:


使用 DB2 实现系统持久层管理。

  使用 WebSphere Application Server (WAS) 提供系统运行时支持环境。

  使用集成了 ESB 的 WebSphere Process Server (WPS) 管理服务调度,提供 SCA 基础构件。

  使用 Rational Performance Tester for SOA Quality (RPT for SOA Quality) 进行服务层接口测试。

  使用 Rational Function Tester (RFT) 进行用户 UI 层接口测试。

  图 4 直观的描述了 SOA 组合业务服务自动化测试方案。

  图 4. SOA 组合业务服务自动化测试方案

  需要说明的是,在项目中根据具体的测试需求,可能还需要添加 LDAP 服务器,文档管理服务器等,或用于离线业务的消息队列服务。而上面给出的测试环境是实现功能测试的最小集。

  以下篇幅介绍如何自动化的将 WPS,DB2 等应用中间件和 RPT for SOA quality,RFT,等测试工具整合成一套完成的测试环境。

  4. 测试环境自动化配置的途径测试环境自动化配置的途径

  本章主要介绍在测试环境自动化搭建过程中被广泛使用的两种方法。

  使用响应文件进行静默安装

  响应文件可以简化组件的安装和配置。响应文件是文本文件,包含安装和配置组件所需的产品和系统信息。执行无人照管(静默)安装时,此文件相当有用。安装过程从响应文件读取信息,而不是提示您进行填空。也可以使用文本编辑器添加组件或定制选项,将响应文件重新用于以后的安装。

  虽然不同产品的响应文件内容存在区别,但大体上应遵循以下规范:响应文件由“属性 = 值”对组成;每一个对都代表了安装中对某一属性的设置;不同的对之间用回车符加以区分;可以在注释前使用字符 # 将注释添加到响应文件中。

  以下示例说明了从简易安装脚本生成的响应文件。

  总体来讲,要使用响应文件安装支撑软件,请遵循这些基本步骤:

  一、编辑响应文件以检查其语法并确保信息正确无误。

  二、运行安装脚本并指定响应文件。

  三、检查软件是否被正确的安装成功。

  使用脚本编制配置 WPS

  WPS 提供了脚本编制工具 wsadmin。我们用这一工具来代替交互式的管理控制台,实现 WPS 配置的自动化。WPS 的全部管理活动都可以使用 wsadmin 工具完成。

  图 5 描述 wsadmin 脚本编制解决方案中涉及的主要组件:

  图 5. WebSphere Application Server 脚本编制解决方案


 wsadmin 工具支持两种脚本语言:Jacl 和 Jython。在本文中采用 Jacl 实现脚本文件。当您使用脚本时,有五个对象可用:

  AdminControl:用于运行操作命令; AdminConfig:用于运行配置命令以创建或修改 WebSphere Application Server 配置元素; AdminApp:用于管理应用程序; AdminTask:用于运行管理命令; Help:用于获取一般帮助;
  脚本使用这些对象与运行在 WebSphere Application Server 进程中的 MBean 通信。MBean 是表示 Java 管理扩展(JMX)资源的 Java 对象。JMX 是附加于 Java 2 Platform Standard Edition(J2SE)的可选软件包。JMX 是提供简单和标准方法来管理 Java 对象的一种技术。您可以通过以参考资料 1 与参考资料 2 找到更多关于 Jacl 与 WPS 配置模型的信息。

  5. 一个具体的配置过程一个具体的配置过程

  作为一个典型的基于 SOA 的组合业务解决方案,我们在测试环境部署阶段要做的事情有:

搭建一套由干净的操作系统组成的局域网; 安装数据库管理工具; 安装和配置应用服务器; 安装和配置运行动态服务流程的流程服务器; 安装 service layer 测试工具; 安装 business process layer 测试工具; 安装 GUI layer 测试工具;
  我们采用表 1 中的产品作为上述工具的实现。

  表 1. 工具清单
  工具 采用产品 


  以上每一个步骤都可以当作一个脚本的一部分来执行,但是为了讲述方便,我们将把不同的步骤分开描述、分开执行。当然,最终您应当使用一种被操作系统支持的脚本语言将各个步骤衔接起来。

  以下篇幅将讲述如何自动化部署这些工具和产品。操作系统选用 Windows Server 2003 为例。

   N10203">安装 DB2 V8.2

   DB2 提供了响应文件安装的方式。我们利用这种安装方式来实现 DB2 的静默安装。

  第一步,生成响应文件。当使用交互式安装实用程序安装 DB2 时,在安装开始之前会提示您进行安装选择并提供必要的配置数据。响应文件的作用就是预置这些安装选项和配置数据。

  可以用三种方法来生成响应文件:

使用 DB2 Setup Wizard; 使用 DB2 响应文件生成器实用程序(仅 Windows); 手动生成响应文件;
  响应文件是 ASCII 文本文件。清单 1 是响应文件的样本。

   清单 1. DB2 响应文件

PROD=ENTERPRISE_SERVER_EDITION
LIC_AGREEMENT=ACCEPT
FILE=C:\Program Files\IBM\SQLLIB\
INSTALL_TYPE=TYPECAL
LANG=EN
DAS_CONTACT_LIST=LOCAL
DATABASE=WH_CDB
WAREHOUSE_CONTROL_DATABASE=WH_CDB
WAREHOUSE_SCHEMA=IWH
WH_CDB.DATABASE_NAME=DWCTRLDB
INSTANCE=DB2
INSTANCE=DB2CTLSV
WH_CDB.INSTANCE=DB2
WH_CDB.LOCATION=LOCAL
DB2.NAME=DB2
DB2CTLSV.NAME=DB2CTLSV
DEFAULT_INSTANCE=DB2
CTLSRV_INSTANCE=DB2CTLSV
DB2.SVCENAME=db2c_DB2
DB2CTLSV.SVCENAME=db2c_DB2CTLSV
DB2.DB2COMM=TCPIP
DB2CTLSV.DB2COMM=TCPIP
DB2.PORT_NUMBER=50000
DB2CTLSV.PORT_NUMBER=50001
DB2.FEDERATED=YES
DB2.AUTOSTART=YES
DB2CTLSV.AUTOSTART=YES
DB2.USERNAME=db2admin
DB2CTLSV.USERNAME=db2admin
WH_CDB.USERNAME=db2admin
DB2.PASSWORD=passw0rd
ENCRYPTED=DB2.PASSWORD
DB2CTLSV.PASSWORD=passw0rd
ENCRYPTED=DB2CTLSV.PASSWORD
WH_CDB.PASSWORD=passw0rd
ENCRYPTED=WH_CDB.PASSWORD
DAS_USERNAME=db2admin
DAS_PASSWORD=passw0rd
ENCRYPTED=DAS_PASSWORD
DB2_EXTSECURITY=YES
DB2_USERSGROUP_NAME=DB2USERS
DB2_ADMINGROUP_NAME=DB2ADMNS


  另外,在 DB2 的安装文档中 \db2\Windows\samples\db2ese.rsp 文件是响应文件模板,其中包含了对以上属性设置的解释。
 有关DB2 响应文件的更多内容您可以查看参考资料 3。

  第二步,使用响应文件静默安装 DB2。使用响应文件安装 DB2 仍需通过 setup.exe 来进行。不过需要给该安装程序输入响应文件的完整目录作为执行参数,以激活响应文件安装方式。清单 2 是执行响应文件安装方式的命令样式。

   清单 2. 执行 DB2 响应文件

SET buildpath=C:/tools/db2_82/FP10_WR21362_ESE/  %buildpath%setup /u c:/resf.rsp


  还可以通过执行 setup /? 来查看 setup 的更多执行方式。

   DB2 安装完成后,我们使用从 Windows 命令提示符创建 database。命令如下:

db2cmd db2 CREATE DATABASE MyDB ON 'C:' USING CODESET GBK TERRITORY CN


  有关 DB2 响应文件的更多内容你可以查看参考资料 3。

  N10249">安装 WPS V6.0.2 和配置概要

  由于 WPS V6.0.2 中已经集成了 WAS V6.0.1 与 ESB,所以我们只需执行 WPS 的安装便可同时完成上述三者的安装,这位我们的自动化部署带来了极好的便利。

  我们同样使用响应文件方式进行静默安装。由于文件过长,将其放在了文章的附件当中。

  使用响应文件静默安装 WPS。使用响应文件安装 WPS 通过 Installwebsphere\tool pack\wps601\WBI\install.exe 来进行。需要给该安装程序输入响应文件的完整目录作为执行参数,以激活响应文件安装方式。清单 3 是执行响应文件安装方式的命令样式。

  清单 3. 执行 WPS 响应文件

SET wpsbuildpath=C:/tools/Installwebsphere/tool pack/wps602/WBI/  %wpsbuildpath%install -options install_wps.txt
 


  清单 4. 建立 CMP 连接工厂

set jdbcAdapter ""
 # Get the cell's J2CResourceAdapter object
 # This could return multiple J2CResourceAdapters
 set j2cradapters [$AdminConfig list J2CResourceAdapter $node]
 foreach j2cradapter $j2cradapters {
 set j2craName [$AdminConfig showAttribute $j2cradapter name]
 if {$j2craName == "WebSphere Relational Resource Adapter"} {
 set jdbcAdapter $j2cradapter
 }
 }
 puts "J2CRA is $jdbcAdapter"
 # This will cause a corresponding CMP connection factory which corresponds
 # to this datasource to be created for the relational resource adapter
 set cmp_connfac_attrs [list [list name "$dsname\_CF"]
 [list authMechanismPreference BASIC_PASSWORD] [list cmpDatasource $newds]]
 set cmp_connfac [$AdminConfig create CMPConnectorFactory $jdbcAdapter
 $cmp_connfac_attrs]
 puts "CMPCF is $cmp_connfac"
 set authDataAliasList [list authDataAlias db2Alias]
 set mappingConfigAliasList [list mappingConfigAlias DefaultPrincipalMapping]
 set mappingList [list $authDataAliasList $mappingConfigAliasList]
 $AdminConfig create MappingModule $cmp_connfac $mappingList
$AdminConfig save


  脚本运行命令为:

 <%WPSProfileRoot%>\bin\wsadmin.bat -f "<%FullPathOfYourScript%>"

  其中,<%WPSProfileRoot%> 代表 WPS 配置概要的完全路径,<%FullPathOfYourScript%> 代表你的数据访问配置脚本的完全路径。

  有关 WPS 数据源配置的更多内容你可以查看参考资料 5。

 N102B3">安装 RFT、RPT for SOA Quality


 完成以上三个步骤后,一个最基本的基于 SOA 的组合业务解决方案的支撑环境就已经搭建好了。不过我们还需将测试工具添加到该环境中,这样才能构成一个完整的测试支撑环境。前面提到了两个测试工具:RFT 和 RPT for SOA Quality。实际的安装需要分为三步进行:

  安装 RFT V 6.1; 安装 RPT V 7.0.1; 在 RPT 上安装 RPT for SOA Quality 插件。
  安装 RFT V6.1,RFT 提供了一个标准的静默安装方式。该静默安装方式等同于从 Setup Wizard 进行典型安装。运行静默安装方式的命令如下:

 <%RFTInstallRoot%>\setup\setup –silent [-P installLocation="d:\my appdev"] 


  其中,<%RFTInstallRoot%> 代表 RFT 安装包的实际路径;“[]”中为可选参数,通过设置参数 installLocation,可以更改 RFT 的安装路径。

  安装 RPT V7.0.0.1,RPT V7.0.0.1 具有与 RFT V6.1 相似的静默安装方式。唯一不同是安装文件的名称变为了 install_win32.exe。命令如下:

<%RFTInstallRoot%>\ install_win32 –silent [-P installLocation="d:\my appdev"] 


  安装 RPT for SOA Quality 插件,当 RPT for SOA Quality 的安装程序能自动检测出本地系统上的 RPT 信息,无需手动指向。运行静默安装方式的命令如下:

<%RFTInstallRoot%>\ install_win32 –silent 

 

  注意:只有 RPT V7.0.0.1 或更高版本,才能支持 RPT for SOA Quality V7.0.1 插件。

  总结

  本文主要介绍了 SOA 组合业务服务的环境框架,以及自动化测试手段与工具。之后讲解了如何自动化的部署一套测试环境。本系列的下一篇文章将介绍如何在这样一套测试环境中实现被测实体的自动化部署。

0
相关文章