国外优秀的基础软件产品如Redhat、Weblogic、Oracle等,发展早并且技术成熟,一直是国内IT企业的首选,但其昂贵的价格和并不快捷的售后服务已制约了这些产品的进一步推广,国产基础软件逐渐成为一个很好的选择,这也符合国家的政策趋势。
一 国产基础软件互操作能力现状
近年来,由于许多新兴的商业概念和交易方式的产生,网上交易已成为人们生活中的主要消费方式,大批量的客户群也对Web应用提出了新的挑战,特别是后台支撑平台能够提供的交互能力。
国外优秀的基础软件产品如Redhat、Weblogic、Oracle等,发展早并且技术成熟,一直是国内IT企业的首选,但其昂贵的价格和并不快捷的售后服务已制约了这些产品的进一步推广,国产基础软件逐渐成为一个很好的选择,这也符合国家的政策趋势。
目前,国产基础软件在功能、性能、易用性等方面已与国外优秀的产品趋于等同,其中的中国元素甚至更符合国内大众的使用习惯,这是一种本土优势。但是,国产基础软件间的相互适配的能力以及数据传递、交互和共享等互操作性能力,仍与国外优秀的集成平台存在差距。本文基于国家重大专项“核高基”课题的研究内容,介绍了一中基于TPC-W应用模型的互操作性测试方法,期望通过测试找到主流的国产基础软件的适配和互操作能力,促进国产基础软件的发展与完善,最终提高其整体软件质量和国际竞争力。
二 TPC-W测试模型
事务处理性能委员会(Transaction Processing Performance Council,简称TPC)定义了一套针对Web 服务器的TPC-W基准模型,目的在于及时掌握Web应用后台支撑平台的交互能力,获得Web 应用的客观互操作性验证。TPC-W基准模型模拟面向商务的事务型Web活动。在这种测试模型中,多种Web交互方式被应用于网上书店模拟业务活动中。通过TPC-W基准测试得到的互操作性指标为Web交互次数/秒。
在TPC-W售书商务网站测试模型中,可模拟用户日常在网上购买书籍的多种交易类型和交易过程,包括浏览商店主页、浏览和查找商品、订购商品、查看定单状态等14种操作,商店的规模可通过库存货物件数进行控制,以达到模拟真实业务状况的目的。TPC-W业务模型主要的业务操作统一起来可分为两类:浏览模型和订购模型,这些业务操作对应如下:
浏览模模型和订购模型对应的业务操作在数据库中对应的增、删、查、改操作不同,因此对基础软件平台产生的作用也不同,这将导致差异很大的互操作能力。基于不同的商业系统的模拟以及不同的测试目的,TPC-W测试业务模型分为三类:
(1)普通模型:此模型符合普通的网上书店的日常业务交易统计情况,浏览业务与订购业务比例为80%:20%,测试考察的指标主要是特定比例因子下的每秒Web交互数(WIPS),比例因子来源于测试中设计的书籍详细信息表(Item表)中的商品条目数(商品条目数可设定为1000-100000000);
(2)浏览模型:此模型中模拟的顾客行为以浏览操作为主,浏览业务与订购业务操作比例为95%:5%,Web服务器的性能对此模式下的互操作能力测试结果影响较大,测试考察的指标主要是浏览模式下的每秒Web交互数(WIPSb);比例因子来源于测试中设计的书籍详细信息表(Item表)中的商品条目数(商品条目数可设定为1000-100000000);
(3)订购模型:此模型中模拟的顾客行为以订购操作为主,浏览业务与订购业务操作比例为50%:50%,数据库服务器的性能对此模式下的互操作能力测试结果影响较大,测试考察的指标主要是订购模式下的每秒Web交互数(WIPSo),比例因子来源于测试中设计的书籍详细信息表(Item表)中的商品条目数(商品条目数可设定为1000-100000000)。
采用TPC-W基准模型测试Web应用平台的互操作能力基于这样的测试原理:通过增加书籍的条目数(商品数)以及访问电子售书网站的用户数量(模拟的浏览器的数量),加大向数据库服务器提交的请求数以及数据库处理的请求数,最终获得在确定环境条件下和规定的响应时间接受范围内,基础软件平台能够实现的最大交互能力,即获得最大的WIPS值。
TPC-W测试业务模型对每项业务操作,规定了在一定度量时间间隔内的满足要求的90%的交互响应时间,响应时间精度为0.1秒。采用TPC-W基准模型测试Web应用平台的互操作能力基于这样的测试原理:通过增加书籍的条目数(商品数)以及访问电子售书网站的用户数量(模拟的浏览器的数量),加大向数据库服务器提交的请求数以及数据库处理的请求数,最终获得在确定环境条件下和规定的响应时间接受范围内,基础软件平台能够实现的最大交互能力,即获得最大的WIPS值。
三 TPC-W测试过程
1、基础软件平台搭建
(1)选择合适的服务器安装需要考察的国产操作系统,安装完成后创建TPC-W测试专用帐号,如cstc(China Software Testing Center),并赋予合适的权限;开启必要的服务如sshd,方便后面大量的配置文件修改操作;关闭防火墙;安装Java运行环境,本次测试选择的版本是jdk1.6.0_14;
(2)安装国产数据库。数据库管理系统创建数据库TPC-W,专为本次TPC-W测试使用。数据库创建成功后,将对数据库模式、表等的基本功能进行验证;
(3)安装并启动国产数据库。可通过浏览器对数据库状态进行确认。
2、应用系统部署
(1)应用系统安装。在数据库的管理控制台中,部署基于TPC-W模型开发的网上书店应用包如web.war,部署完成后启用应用。
(2)配置数据源。在测试中需配置数据源以实现外部程序的访问,此处的访问主要是数据库表和数据的insert和select操作。在数据库控制台中正确配置目标数据库的名称、地址和端口,选择对应的数据库驱动类型,并正确填写数据库用户名和密码、URL和驱动类信息等,配置完成后启动数据源,如果成功启动,数据源状态应显示为“成功”。
(2)安装JRE。由于启动自行开发的TPC-W测试工具需要Java运行环境,所以需要在Windows测试机上需要安装JRE,本次测试版本选择为1.6.0_17,可通过java –version进行验证。需注意,如果JRE版本过低,可能导致无法启动TPC-W测试工具。
3、配置测试场景
至此,测试环境和应用已搭建完成,接下来需要对基于模型开发的TPC-W测试工具进行测试场景配置。进入测试工具的\bin目录中,修改配置文件TPC-W.config完成书籍条目数和模拟的浏览器数量等的设置,主要修改内容如下:
<add key="item_num" value="1000" /> //书籍条目数
<add key="eb_num" value="20" /> //模拟的浏览器数量
<add key="domain" value="http://172.16.23.136:xxxx/web/" /> //应用地址
<add key="get_resource" value="true" /> //资源获取
<add key="jdbc-driver" value="xx.jdbc.driver.xx" /> //驱动类
<add key="jdbc-connect-string"
value="jdbc:xx://172.16.23.136:xxxx/TPC-W "/> //jdbc连接字符串
<add key="jdbc-connect-username" value="sysdba" /> //数据库登录名
<add key="jdbc-connect-password" value="sysdba" /> //数据库登录密码
4、建表和装载数据
运行\bin目录中的Run.bat文件,即可打开TPC-W基准测试工具(Master),然后通过测试工具自动在数据库中建立8张表,分别是Address、Author、CC_Xacts、Country、Customer、Item、Order_List和Orders;然后装载数据,装载数据的数据量和TPC-W.config配置文件中的<add key="item_num" value="1000" /> 和<add key="eb_num" value="20" />行的设置有关,数据装载完成后需对数据进行检查以保证数据装载过程无误。
数据加载完成以后,在正式测试之前应先检查数据加载情况,可以在IE浏览器地址栏输入http://172.16.23.136:xxxx/web/Home.jsp?c_id=1(IP地址需根据实际的应用部署情况而定,作者使用的应用IP为172.16.23.136;端口号填写采用的中间件的配置端口号),如果弹出如下页面,则说明数据加载成功,可以开始实施测试。
5、实施测试
在TPC-W测试工具上选择“运行测试-启动运行工具”,点击“开始测试” , TPC-W测试程序会按照预先设计好的业务交易模式执行测试。在测试过程中,可以通过本工具自带的计数器和其它的监控工具配合使用,对基础软件平台进行监控,及时发现制约平台互操作能力的因素,以获得最大的WIPS值。
6、结果对比
在TPC-W基准测试工具的配置文件中item设置为10000,ramp-up(测试预热时间)设置为600秒,measure-interval设置为1800秒时,经过简单优化的国内主流的基础软件产品互操作能力测试结果如下:
通过以上结果的展示可看出:目前国内的主流基础软件产品中,已测试的产品在特定版本下均能实现适配,其中,x操作系统、b中间件和c数据库集成的基础软件平台能提供最好的互操作能力,实现较好的互操作性。
四 测试总结
基于TPC-W基准模型对国产基础软件互操作能力进行测试,可以屏蔽掉环境的差异对测试结果的影响,保证测试结果更加客观、公平和公正。另外,测试结果的重要性表现在:基础软件厂商可参考测试结果反映的情况,找出最适合与自身产品集成的基础软件产品进行绑定推广,也可根据测试结果对自身产品进行改进和优化,提高产品的互操作能力,进而提高软件的整体质量。