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

 
   | |

导读:本文主要介绍了SOA组合业务服务的环境框架,以及自动化测试手段与工具。之后讲解了如何自动化的部署一套测试环境。

关键词:SOA 组合业务服务 框架 自动化 测试

 
正在加载数据...

  通过本文您将了解组合业务服务的概念以及如何自动化的将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 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。

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

  作者简介

  杨晢,北京邮电大学软件工程硕士,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解决方案的测试。 


构建SOA组合业务服务
 开发SOA组合应用程序来支持业务服务
 构建SOA组合业务服务
 使用REST体系结构样式构建可使用的Web服务
 使用公共事件基础设施开发可测量的组合应用程序
 最佳实践、差距及获得的经验教训
 自动化构建与部署步骤
 为组合业务服务提供多分租支持
 组合业务服务CBS的开发(一)
 组合业务服务CBS的开发(二)
 面向灵活性和可配置性的业务流程并行活动模式
 提供对服务消费的治理
 SOA组合业务服务的自动化测试(一)
 SOA组合业务服务的自动化测试(二)
 SOA组合业务服务的自动化测试(三)
 SOA联盟发布:“业务驱动的SOA”

原文出处:http://www.ibm.com/developerworks/cn/webservices/0810_CBS_1/
 
来源:IBM    作者:杨晢,袁俊峰,宋玉红    
 
 
 
 
 

BPM

 
伴随着最近一系列的收购和发布,业务流程管理(BPM)产业迅猛发展。本周,Pegasystems宣布将以1615万美元收购Chordiant,增加客户关系管理(CRM)到其工具集中……
 
IT预算可能会达到一个新低点,导致更少的人员投入,推迟业务项目。但是,这个间歇对于CIO们来说,是引进敏捷IT最佳实践的黄金时间。敏捷IT的设计……
 
过度依赖IT基础设施来提供一个解决方案可能会引起新的问题。但这不意味着应该把IT的超常能力搁置起来。
 
业务规则引擎(BRE,business rules engine)是一种软件组件,它允许非程序员添加或更改业务流程管理(BPM)系统中的业务逻辑。
 
总览企业视图使企业架构师看到了企业内部的组织之间的相互关系,并能用战略和目标来帮助调整架构。但是很少有企业架构师设计整个企业的架构……

热门技术手册排行

 

随着开源技术越来越成熟,一个稍有开发经验的人通过学习就可以用开源的产品和技术构建一套可用的系统。对于从事软件开发的人员,尤其是对Java或动态语言相关领域的人来说,“开源”也许是他们最喜爱的单词。但是,很多时候我们需要的不仅仅是一个可用的系统,而是希望这个系统开发更简易、性能更高和扩展性更好等。这确实是一个令人头痛的问题。本指南很多地方都是点到为止,要深入了解相关信息的读者请借助参考资料、网站等自行挖掘。

 

本专题分六部分探讨SOA设计模式,当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度。

 

业务流程管理(business process management,bpm)不是一个新概念,甚至不是一个新名词。它是从相关的业务流程变革领域,如业务流程改进(bpi)、业务流程重组(bpr)、业务流程革新中发展起来的。流程管理技术也是从早期的工作流管理、eai、流程自动化、流程集成、流程建模、流程优化等技术中发展起来的。

 

TOAGF是一个架构框架,简而言之,TOGAF是一种协助发展,验收,运行,使用,和维护架构的工具。它是基于一个迭代(Iterative)的过程模型,支持最佳实践和一套可重用的现有架构资产。

 

云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。

 

Mashup是一个非常cool的新的应用程序种类。如果你想真正的了解它们,我们需要回过头来看看你现在的计算机,其实它就是一个非常好的帮助你理解mashup的模型。现在开源的操作系统无疑是非常好的apis的集合或应用程序编程接口,帮助开发者去构建其应用程序。计算机本身也是一个很好的为用户提供接口的例子,键盘和鼠标可以被理解为你通过计算机的接口而使用的不同的应用程序。本技术手册为读者提供了一些相关信息,如果需要深入了解mashup,读者可以借助其他参考资源。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录