SOA组合业务服务的自动化测试(一)

日期: 2009-03-26 作者:杨晢袁俊峰宋玉红 来源:TechTarget中国 英文

  通过本文您将了解组合业务服务的概念以及如何自动化的将WebSphere Process Server,WebSphere Application Server,DB2等应用中间件和Rational Performance Tester for SOA quality,Rational Function Tester,等测试工具整合成一套完整的测试环境。

  引言

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

                 

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

  ·实现业务流程中的关键功能
  ·在行业中通用的业务逻辑
  ·具有标准的输入输出接口

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

  ·CBS的通用性特点要求,CBS要在不同软件平台环境下正确运行。
  ·CBS的并非最终产品,没有(或很少)图形界面的手工测试。

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

  测试环境的框架

  从操作层面来讲,作为黑盒测试,首要明确的是系统中存在哪些对外接口。图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,等测试工具整合成一套完成的测试环境。

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

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

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

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

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

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

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

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

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

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

  使用脚本编制配置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配置模型的信息。

  一个具体的配置过程

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

  ·搭建一套由干净的操作系统组成的局域网;
  ·安装数据库管理工具;
  ·安装和配置应用服务器;
  ·安装和配置运行动态服务流程的流程服务器;
  ·安装service layer测试工具;
  ·安装business process layer测试工具;
  ·安装GUI layer测试工具;

  我们采用表1中的产品作为上述工具的实现。

  表1. 工具清单

        

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

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

  安装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 FilesIBMSQLLIB
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的安装文档中db2Windowssamplesdb2ese.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。

  安装WPS V6.0.2和配置概要

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

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

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

  清单3. 执行WPS响应文件

  SET wpsbuildpath=C:/tools/Installwebsphere/tool pack/wps602/WBI/
%wpsbuildpath%install -options install_wps.txt
 
  有关WPS响应文件的更多内容你可以查看参考资料4。

  为WPS配置一个DB2 Universal数据源

  在这一步中,我们利用WPS自带的命令行工具(websphere/appserver/profiles/server1/bin/wsadmin),编写jacl脚本,集成到ant中,利用ant强大的项目构建能力实现数据源的自动配置。

  在本文的附件当中有完整的配置数据访问的jacl脚本。脚本大体可以分为三个模块:1. 配置JDBC提供程序;2. 配置新的数据源;3. 建立CMP连接工厂,将配置好的数据源用于容器管理的持久性。清单4是jacl脚本中建立CMP连接工厂部分的节选。这部分代码相当于从图形化管理界面中勾选“将此数据源用于容器管理的持久性(CMP)”。

  清单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%>binwsadmin.bat -f “<%FullPathOfYourScript%>”
 
  其中,<%WPSProfileRoot%>代表WPS配置概要的完全路径,<%FullPathOfYourScript%> 代表你的数据访问配置脚本的完全路径。

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

  安装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%>setupsetup –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组合业务服务的环境框架,以及自动化测试手段与工具。之后讲解了如何自动化的部署一套测试环境。本系列的下一篇文章将介绍如何在这样一套测试环境中实现被测实体的自动化部署。

  作者简介

  杨晢,北京邮电大学软件工程硕士,2007.3~2008.1在IBM中国开发实验室Global Business Solution Centre实习,期间从事SOA测试相关的工作。作者曾涉及的领域有软件测试自动化,软件测试流程,信息系统安全测评等,目前主要从事金融信息系统的开发与运维。
 
  袁俊峰,2008年研究生毕业于北京邮电大学网络与交互国家重点实验室,毕业后就职于IBM Global Business Solution Center,从事过SOA项目的开发和测试,目前主要从事Asset Reuse的工作。
 
  宋玉红,2007年研究生毕业于北京航空航天大学,毕业后就职于IBM Global Business Solution Center,主要从事于SOA解决方案的测试。 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 多云工作负载迁移:自动化是何作用?

    云计算正在发展进入一个崭新的、更成熟的阶段。云规划和部署的关注点已经从低效应用的远程托管转至对云的支持,并将其作为开发人员所使用的虚拟应用平台。

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。