CN1648874A - 一种银行主机运行压力测试系统 - Google Patents

一种银行主机运行压力测试系统 Download PDF

Info

Publication number
CN1648874A
CN1648874A CN 200510055732 CN200510055732A CN1648874A CN 1648874 A CN1648874 A CN 1648874A CN 200510055732 CN200510055732 CN 200510055732 CN 200510055732 A CN200510055732 A CN 200510055732A CN 1648874 A CN1648874 A CN 1648874A
Authority
CN
China
Prior art keywords
test
file
data
transaction
bank
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200510055732
Other languages
English (en)
Other versions
CN100349133C (zh
Inventor
刘家桦
何山度
周尚勤
汤志斌
潘进宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CNB2005100557321A priority Critical patent/CN100349133C/zh
Publication of CN1648874A publication Critical patent/CN1648874A/zh
Application granted granted Critical
Publication of CN100349133C publication Critical patent/CN100349133C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明为一种银行主机运行压力测试系统,包括:银行主机端、测试微机端;银行主机端包括:测试业务数据库;测试业务运行单元,处理银行测试业务数据,更新测试业务数据库,反馈测试信息;数据采集单元,用于采集数据,生成银行主机测试文件;测试微机端包括:数据预处理单元,对主机测试文件进行处理,生成测试需要的用户文件、数据文件、交易参数文件;测试控制单元,读取所述的用户文件、数据文件、交易参数文件;并发送交易数据包;通过测试工具生成日志文件,记录反馈的测试信息;测试结果处理单元,读取日志文件,输出测试结果。用以参与银行主机运行各种交易的压力测试,替代压力测试中大量的人工作业,节省压力测试的成本。

Description

一种银行主机运行压力测试系统
技术领域
本发明涉及软件工程中的软件测试技术,特别涉及用于银行的、兼顾计算机网络结构和银行业务特点的压力测试工具,具体的讲是一种银行主机运行压力测试系统。
背景技术
目前,银行主机的应用部分在开发、测试过程中,及投产前,迫切需要对主机运行应用部分的情况进行一定规模的压力测试。传统的压力测试,通常是安排一批网点,投入大量操作员同时进行模拟业务操作和模拟设备操作等内容,以检验主机运行中各部分的稳定性和健壮性。在实际生产中,银行主机所处理的数据量非常庞大,通常每天需处理的交易可达到1亿1千万笔,而且业务复杂、覆盖面广,因此组织一次压力测试通常需要消耗大量的人力和物力。同时,由于缺乏自动化测试工具,以往的压力测试仅限于手工劳动,需要进行大量重复人工的键入和确认;特别是对于银行的大版本投产前的性能测试,需要动员全银行范围内的员工进行大量的测试。而且,通常需要组织多次全银行性的跨地理区域的压力测试,全银行所有的网点都需参与压力测试,在这期间,为了保证生产系统的安全运行,往往除了个别交易外,其他所有交易都暂停对外服务;为了达到一定的交易量,主机运行压力测试的时间通常持续1-2个小时。这不仅给银行工作造成影响,而且容易给用户造成不必要的麻烦和经济损失。
现有技术中也有不少测试软件性能的测试工具,如:Mercury公司的LoadRunner、Rational的Robot、IBM的TPNS等,但这些测试工具都是用于通用性的压力测试,而并没有专门用于银行业的、能够兼顾银行系统网络结构和银行业务特点的并与现有测试工具相结合的压力测试系统。
发明内容
本发明的目的在于,提供一种银行主机运行压力测试系统。用以参与银行主机运行各种交易的压力测试,替代压力测试中大量的人工作业,节省压力测试的成本。
本发明的技术方案为:一种银行主机运行压力测试系统,包括:银行主机端、以及与所述银行主机端相耦合的载有测试工具的测试微机端;所述的银行主机端包括:测试业务数据库,用于存储银行业务数据;测试业务运行单元,用于处理银行测试业务数据,更新所述的测试业务数据库,反馈测试信息;数据采集单元,从所述的测试业务数据库中采集数据,生成银行主机测试文件;
所述的测试微机端包括:数据预处理单元,用于对所述的主机测试文件进行处理,生成测试需要的用户文件、数据文件、交易参数文件;测试控制单元,用于读取所述的用户文件、数据文件、交易参数文件;并控制测试工具向所述的银行主机端发送交易数据包;通过所述的测试工具生成日志文件,记录反馈的测试信息;测试结果处理单元,用于读取所述的日志文件,结合所述的反馈信息,输出测试结果。
所述的银行主机端由主机和银行业务前置机组成;所述的主机载有或连接有所述的测试业务数据库,所述的主机载有所述的测试业务运行单元;所述的银行业务前置机与所述的主机连接,用于接收所述的交易数据包,判断所述交易数据包的合法性,生成主机通信协议数据包并发送给所述的主机;向所述的微机端返回主机处理结果。
所述的微机端由测试控制机和测试代理机组成,其中:所述的测试控制机载有所述的数据预处理单元、测试结果处理单元及测试工具;所述的测试代理机载有所述的测试控制单元及测试工具。
所述的测试代理机是指:由多台测试代理机组成的测试代理机组。
所述测试代理机组中的各测试代理机的一端与一测试控制机联接,各测试代理机的另一端与一银行业务前置机联接;
所述的主机载有或连接有所述的测试业务数据库,所述的主机载有所述的测试业务运行单元;所述的银行业务前置机与所述的主机连接,用于接收所述各测试代理机发来的交易数据包,判断所述交易数据包的合法性,生成主机通信协议数据包并发送给所述的主机;向对应的测试代理机返回主机处理结果。
所述的测试业务数据库存储有银行地区数据、银行网点数据、银行柜员数据、以及多种银行业务数据;
所述的数据采集单元是指在所述主机上开发的一个批量作业,该批量作业按一定比例算法从所述测试业务数据库里提取银行地区数据、银行网点数据、银行柜员数据,在所述主机上运行,若该地区有满足条件的柜员,则写所述主机测试文件的地区号部分、网点号部分、柜员号部分;
该批量作业按一定比例算法从所述测试业务数据库里提取银行业务数据,在所述主机上运行,若该地区有满足条件的银行业务,则写所述主机测试文件的银行业务部分;从而生成所述的主机测试文件。
所述的数据预处理单元进一步包括:
中间文件生成部分,用于读取主机测试文件,将主机测试文件按照不同的数据类型分为三个中间文件以供生成柜员文本(guiyuan.txt)时读取;
初始化地区比例结构数组部分,用于生成地区比例结构数组以供生成柜员文本时读取;
生成柜员文本中间文件部分,若柜员文本按照地区比例分配,则需要用到地区比例结构数组;
初始化网关比例结构数组部分,用于生成网关比例结构数组以供生成用户文件、数据文件名、参数文件时读取;
初始化交易比例结构数组部分,用于生成交易比例结构数组以供填充数据文件时使用;
利用网关比例结构数组部分,用于生成用户文件、数据文件名(空文件)、参数文件;
利用交易比例结构数组填充数据文件部分。
所述的测试控制单元进一步包括:逻辑控制模块、交易模板库;其中:由所述的测试工具(LoadRunner)发起多个测试进程,每个测试进程调用对应的一个辑控制模块,每一个逻辑控制模块获取发起的交易和柜员号,调用交易模板库中的相应交易模板,填入具体交易数据,组成各类交易的数据包,将该数据包发送到所述的银行前置机;并且每一个逻辑控制模块接收所述银行前置机的返回信息,记录测试结果。
所述的测试结果处理单元进一步包括:
输入部分:获取所述的日志文件及其所在目录的路径名;
输出部分:输出错误交易明细表、通过交易明细表、交易错误和网关错误表;
查询部分:用于进行错误交易汇总查询、错误交易明细查询、错误类别汇总查询、通过交易汇总查询、通过交易明细查询。
本发明的有益效果在于,通过提供一种银行主机运行压力测试系统,能模拟银行所有的联机交易(柜面交易、ATM、POS、自助终端、网银)。
在压力测试中能够节省资源,只需要极少的资源进行测试,而无需安排大量测试人员和设备;测试执行者易于管理压力测试同步进行;测试结果易于统计和分析;测试系统可重复运行。
本发明系统可以减少人为因素导致测试质量不稳定的情况;通过使用交易模板库,使系统扩展性强;测试数据准备、压力测试执行测试以及结果收集分析等过程分别由数据采集、数据预处理、测试控制、结果处理这四个装置执行,无需人工干预,基本实现自动化;测试对象具有多样性,可根据需要对DSR网关、综合前置、通用网关、主机等进行压力测试。
附图说明
图1为本发明系统的结构框图;
图2为本发明的测试流程图;
图3为本发明系统的网络结构框图;
图4为本发明系统的逻辑结构框图;
图5为本发明系统的数据采集流程图;
图6a为本发明系统的数据采集程序流程图;
图6b为与图6a接续的数据采集程序流程图;
图7为本发明系统的生成中间文件的流程图;
图8为本发明系统的初始化地区比例结构数组流程图;
图9为本发明系统的生成柜员文本中间文件流程图;
图10为本发明系统的初始化网关比例结构数据流程图;
图11为本发明系统的初始化交易比例结构数据流程图;
图12为本发明系统的生成用户文件、数据文件、参数文件流程图;
图13为本发明系统的填充数据文件流程图;
图14为本发明系统的单一逻辑控制模块流程图;
图15为本发明系统的交易模板库中的交易分发函数的流程图;
图16为本发明系统的交易模板库中的单交易打包上送函数流程图;
图17为本发明系统的结构处理模块程序流程图。
具体实施方式
下面结合附图对于本发明进行如下详细说明。如图2和图4所示,本发明提供的一种银行主机运行压力测试系统,包括:银行主机端、以及与所述银行主机端相耦合的载有测试工具的测试微机端;所述的银行主机端包括:测试业务数据库,用于存储银行业务数据;测试业务运行单元,用于处理银行测试业务数据,更新所述的测试业务数据库,反馈测试信息;数据采集单元,从所述的测试业务数据库中采集数据,生成银行主机测试文件;
所述的测试微机端包括:数据预处理单元,用于对所述的主机测试文件进行处理,生成测试需要的用户文件、数据文件、交易参数文件;测试控制单元,用于读取所述的用户文件、数据文件、交易参数文件;并控制测试工具向所述的银行主机端发送交易数据包;通过所述的测试工具生成日志文件,记录反馈的测试信息;测试结果处理单元,用于读取所述的日志文件,结合所述的反馈信息,输出测试结果。
如图1和图3所示,所述的银行主机端由主机和银行业务前置机组成;所述的主机载有或连接有所述的测试业务数据库,所述的主机载有所述的测试业务运行单元;所述的银行业务前置机与所述的主机连接,用于接收所述的交易数据包,判断所述交易数据包的合法性,生成主机通信协议数据包并发送给所述的主机;向所述的微机端返回主机处理结果。
所述的微机端由测试控制机和测试代理机组成,其中:所述的测试控制机载有所述的数据预处理单元、测试结果处理单元及测试工具;所述的测试代理机载有所述的测试控制单元及测试工具。所述的测试代理机是指:由多台测试代理机组成的测试代理机组。所述的银行主机端由主机和银行业务前置机组成;所述测试代理机组中的各测试代理机的一端与一测试控制机联接,各测试代理机的另一端与一银行业务前置机联接;
所述的主机载有或连接有所述的测试业务数据库,所述的主机载有所述的测试业务运行单元;所述的银行业务前置机与所述的主机连接,用于接收所述各测试代理机发来的交易数据包,判断所述交易数据包的合法性,生成主机通信协议数据包并发送给所述的主机;向对应的测试代理机返回主机处理结果。
本发明系统包含数据采集装置、数据预处理装置、测试控制装置、结果处理装置,其系统结构图如图2所示。本发明系统进行测试的流程为:
a.被测试主机数据库中的数据通过数据采集装置的收集整理,形成主机数据文件;
b.主机数据文件经过数据预处理装置的处理,形成测试控制装置需要的用户文件、数据文件、交易参数文件;
c.交易参数文件调用银行业务系统的交易包进行逻辑处理,通过测试工具(LoadRunner)形成志文件,并将测试过程中的返回信息记录下来;
d.结果处理装置读入LoadRunner在压力测试过程产生的日志文件,结合逻辑控制模块在压力测试过程中记录下的返回信息对压力测试进行统计,形成性能分析所需要的报表。
各个部分的功能和实现说明如下:
1)数据采集装置:数据采集装置的功能由数据采集模块完成,它是在主机上开发的一个批量作业,该批量作业按一定比例算法从测试主机数据库里提取数据,在测试主机上运行,生成主机数据文件。数据采集总体流程见图5。生成的主机数据文件作为数据预处理模块的输入,以生成框架交易文件。
如图6a和图6b所示,数据采集的步骤如下:
a.读取地区号表、网点号表、柜员表。若该地区有满足条件的柜员,则写主机数据文件地区号部分、网点号部分、柜员号部分。
b.读灵通卡文件、牡丹卡文件、贷记卡文件、借记卡文件、综合帐户卡文件。如果该地区有满足条件的灵通卡、牡丹卡、贷记卡、借记卡、综合帐户卡,则写主机数据文件灵通卡部分、牡丹卡部分、贷记卡部分、借记卡部分、综合帐户卡部分。
c.读活期存折分户帐、特约单位档案、发卡机构档案、发卡机构代码表、ATM档案、POS档案、客户信息、基金帐号对照表。如果该地区有满足条件的活期帐户、特约单位、ATM档案、POS档案、客户信息、基金账号,则写主机数据文件活期帐户部分、特约单位档案部分、ATM档案部分、POS档案部分、客户信息部分、基金账号部分。
d.读往来户分户帐、内部户分户帐、表外户分户帐、贷款户分户帐、往来户凭证管理表、总帐、联行入网机构表。如果该地区有满足条件的往来户帐户、内部户帐户、表外户帐号、贷款户帐户、往来户凭证、总帐、联行入网机构,则写主机数据文件往来户部分、内部户部分、表外户部分、贷款户部分、往来户凭证部分、总帐部分、联行入网机构部分。
2)数据预处理装置:数据预处理装置的功能由数据预处理模块完成,它是在Windows平台开发的程序。该程序根据每次压力测试要求的并发用户数预先设定地区、网点、柜员数,读入主机数据文件,生成用户文件、数据文件、参数文件,在压力测试时由逻辑控制模块读取。生成的文件应满足以下要求:
按照给定的网关比例生成数据;
按照给定的交易比例生成数据;
按照给定的地区比例生成数据;
控制每笔交易的发生金额在一个范围内随机取或为固定值;
控制虚拟用户数量;
控制每虚拟用户数的最大柜员数量。
系统输入:主机数据文件、网关比例文件、交易文件、地区比例文件、每用户交易数量、柜员配置信息、交易金额信息、虚拟用户设置;
系统输出:用户文件、数据文件、脚本参数文件;
文件格式设计:
[网关比例文件]
第一行为字符窜“网关地址分配比例”,以后的行为网关地址及其比例数量,网关地址与分配比例之间用空格隔开。样式如下:
网关地址分配比例
122.**.**.35 40
122.**.**.37 60
122.**.**.66 0
122.**.**.67 0
122.**.**.92 0
[从主机获取的数据文件]
由于从主机获取的数据放在一个文件中,包含的数据的类型比较多,为了区分各类型的数据,在数据正文的前面加上标示符号“**XX”,或“%%XX”,或“@@XX”,数据正文的后面加上“##”结束标示符号。“XX”表示数据的名称,“@@”表示先按照地区排序、再按照网点排序的数据,例如灵通卡号数据,“**”表示先按照地区排序的数据(不按网点排序),例如牡丹卡数据,“%%”表示既不按地区也不按网点排序的数据,例如收报行南中心数据。数据正文之间用“,”(英文逗号)分隔。以下是一个从主机获取数据格式的一个例子:
**GUIYUAN
00200,00002,01243
00200,00002,01262
00200,00002,01264
……
##
**LINGTONGCARD
200,9558860200600000015
200,9558860200600000023
200,9558860200600000031
……
##
%%SHOUBAOHANGNANZHONGXIN
20100,1,20001
20100,2,20001
20100,3,20001
……
##
[交易比例文件]
交易比例文件的第一行为“交易名称  比例”,后面行为正式的数据,交易名称与比例之间用空格分开。因每个柜员开始都要做1100交易,退出时都要做1101交易,因此这两个不写在交易比例文件之中。以下为一个交易比例文件的例子:
交易类型                    比例
2610                        10
2100                        10
2702                        25
2703                        25
2805                        15
2902                        15
[地区比例文件]
地区比例文件的第一行为“地区  比例”,后面为正式的数据,地区与比例之间用空格隔开。以下为地区比例文件的例子:
地区号    比例
0200      60
0402      40
[用户文件(输出)]
该文件代表一个虚拟用户,文件名为“UserFile+5位地区号+5位网点号+3位顺序号.dat”,例如“UserFile0040900291001.dat”,文件中的每行格式为“柜员号  柜员密码”
[数据文件(输出)]
该文件记录虚拟用户交易代码及其交易参数,文件名为“DataFile+5位地区号+5位网点号+3位顺序号.dat”,例如“DataFile0040900291001.dat”,文件中的每一行前面为交易代码,后为交易参数。
[参数文件(输出)]
该文件作为主机压力测试脚本的参数文件,文件名为“Vuse_info.dat”,内容中的第一行为“Area,Node,Gate,Port,AppNo,UserFile,DataFile”,以后各行分别为对应的地区、网点、网关、端口、应用号、用户文件、数据文件信息。
数据预处理模块的程序分为以下几个步骤:
a.生成中间文件(程序流程图见图7所示)。该部分的作用是读取主机数据文件,将文件按照不同的数据类型分为三个中间文件以供生成柜员文本(guiyuan.txt)时读取;
b.初始化地区比例结构数组(程序流程图见图8所示)。该部分生成地区比例结构数组可供生成guiyuan.txt时读取;
c.生成guiyuan.txt中间文件(程序流程图见图9所示)。若柜员文件按照地区比例分配,则需要用到地区比例结构数组;
d.初始化网关比例结构数组(程序流程图见图10所示)。该部分生成网关比例结构数组以供生成用户文件、数据文件名、参数文件时读取;
e.初始化交易比例结构数组(程序流程图见图11所示)。该部分生成交易比例结构数组以供填充数据文件时使用;
f.利用网关比例结构数组,生成用户文件、数据文件名(空文件)、参数文件(程序流程图见图12所示);
g.利用交易比例结构数组填充数据文件(程序流程图见图13所示)。
3)测试控制装置:测试控制装置的功能由逻辑控制模块完成,它是在Windows平台利用LoadRunner脚本语言开发的程序。由LoadRunner发起多个进程,每个进程调用一个逻辑控制模块。每一个逻辑控制模块读取网点参数文件中的一条记录(网点参数文件中的记录数大于等于LoadRunner发起的进程数),根据该记录中指定的柜员信息文件和交易数据文件读取文件内容,从中获取发起的交易和柜员号,随后调用交易模板库中的相应交易模板,填入具体交易数据,组成各类交易的数据包。每一个逻辑控制模块发包至DSR网关或综合前置,同时接收网关或综合前置的返回信息,记录测试结果,从而模拟出众多网点同时进行交易的情形。逻辑控制模块是整个构架的核心部分,其设计思路本身是围绕着以下几个问题展开的:
如何根据不同的交易号使用不用的交易控制和交易模板,而对发起交易端的接口相同。
对发起交易端而言,动态连接库提供了一个统一的交易接口,TransDispatch交易分发函数,传递的参数是交易号和交易参数,也就是对应了交易参数文件中每一行的两个部分,至于对交易参数部分如何拆解,有何实际,TransDispatch是不关心的,它的任务是将这个交易参数根据交易参数传送到对应的交易打包函数模块。
考虑到每个交易的交易控制和交易模板都不相同,对每个交易来说都需要实现特定的交易逻辑,对参数文件都不相同,因此每个交易就对应了一个交易打包函数模块,每个函数的主要功能有以下几个方面:
1)对交易参数进行拆解;
2)在数据模板中对交易参数进行直接回填,对通讯校验字段进行计算回填,形成实际的交易数据包;
3)上送交易数据包,获取交易返回结果;
4)对柜员工作状态和交易状态进行调整,保证以下的交易成功。
在压力测试过程中,交易分发函数需要有极高的效率,因此,分发函数查找交易打包函数的过程必须高速。因此我们使用了F(X)=X的散列函数,保证查找函数一次到位,但这是以付出大量的存储空间为代价的。
如何将一些环境变量以及交易结束后的输出结果作为额外参数,传递到需要该参数的交易中。
对发起交易的虚拟用户来说,在整个过程中都需要维护和确定一些自身的状态,例如当前模拟的地区号,网点号,和参与交易的柜员状态,系统日期等。在实现上,把这些值都以一个全局的结构VUSERDATA贯穿于所有交易打包函数和交易接口函数中,这样在交易过程中按需要使用,简化了具体交易的参数要求对交易产生的输出结果,我们对每个交易都保存了一个交易输出区,当交易完成之后,如果返回包中有一些结果是需要关注的,或是以后的交易中会用到的(典型的如流水号,做反交易的时候必须用到),就把它放到该交易的输出区中,当下一个交易需要用到该参数时,直接从交易的输出区中获取该参数值,该方案的缺点是对每个交易来说,输出值只能保存最近的一份,但这通过交易的合理编排可以将这个缺点消除。
如何在交易失败后对测试系统的自身状态进行微调,做到与环境重新同步。在压力测试过程中最常出现的问题就是主机系统不堪重负,导致处理时间偏长,有时候交易超时之后,在下端维护的柜员状态和主机数据库中的柜员状态就会不一致,例如大交易序号不同步,钱箱号码不正确。因此在交易过程中就可能会报出柜员工作状态异常的错,如果这个状态一直不处理,就会导致到该柜员在以后的交易过程中都只能获得失败的结果,必须有一些机制来应付这些错误处理。
逻辑控制模块遇到交易失败的情况时,首先是要获取到错误状态码,如果这个状态码与交易相关,则直接报出错误,而如果状态码反映的情况只是柜员状态不正确,则要插入一个柜员签到的流程,以保证柜员状态与主机数据库状态重新同步,进而保证下一笔交易的成功。
文件格式设计:
[网点参数文件]
文件名为Vuser_info,文本文件。每行由以下几个域顺序组成,域之间使用逗号作为分隔符号。
地区号(5位,不足5位前面补0)
网点号(5位,不足5位前面补0)
网关地址
应用号
柜员信息文件路径
交易信息文件路径
[柜员信息文件]
文件名为UserFileXXXXXYYYYYZZZ,文本文件。其中XXXXX是柜员所在地区号,YYYYY是柜员所在网点号,ZZZ是柜员信心文件的流水号。每行由以下两个域顺序组成,域之间使用空格作为分隔符号。
柜员号(5位)
柜员密码(6位)
[交易信息文件]
文件名为DataFileXXXXXYYYYYZZZ,文本文件。其中XXXXX是柜员所在地区号,YYYYY是柜员所在网点号,ZZZ是交易信息文件的流水号。每行由以下两个域顺序组成,域之间使用空格作为分隔符号。
柜员号(5位,不足5位前面补0)
交易参数(字符串,是”VAR1:VAL1;VAR2;VAL2…”的规则形式,VAR是参数名,VAL是参数值,可有多个,都放在文本的同一行)
单一逻辑控制模块流程图见图14所示。其基本流程是:
a.在网点参数文件中获取一行,得到需要模拟的地区号、网点号、网关地址、应用号、柜员信息文件和对应的交易信息文件;
b.根据向网关的对应端口发起一个TCP连接,确认连通正常,则打开柜员信息文件,获取该网点参与测试的柜员号,并对这些柜员后进行签到动作;
c.保证涉及的所有柜员都签到成功之后,按顺序从交易参数文件中取出一条数据,使用交易参数调用交易模板库中的交易分发函数,完成一次交易;
d.当读到交易文件的最后一行,则将交易参数文件指针复位,重新由第一条开始读,如此反复,直到收到测试结束指令为止。
交易模板库中的交易分发函数的流程图入图15所示。其基本流程是:
a.获取传入的交易号和交易参数,当该交易有前置交易时,要先保证前置交易的成功,同时把前置交易的输入结果传递到本次交易中;
b.在交易模板库中找到对应交易函数入口,直接将交易参数传递到该交易函数,完成了一次分发功能;
c.在交易函数返回时,获取该交易函数的返回值,作为本次交易的状态(成功或失败)。
交易模板库中的单交易打包上送函数流程图如图16所示。其基本流程是:
a.交易函数获得由交易分发函数中转发过来的交易参数,首先取得该交易对应的数据模板(通讯区)。一般来说,任何通讯区都包含了地区号,网点号,柜员号等几个字段,和一些与交易相关的固定值,可以先填入模板,而通讯区的某些字段是需要计算的,例如通讯安全系数,则需要以相关的参数调用计算函数,获得安全系数后再填入数据模板;
b.将完成组装的数据包发送出去,同时等待交易返回数据包,根据返回数据包判断交易的成功或者失败,如果交易成功,还需要更新柜员的工作区中的大交易序号,最后置交易状态为成功,如果返回了一些与柜员工作区相关的错误,则需要重新签到,保证下端柜员状态与主机数据表中的状态同步。
4)结果处理装置:结果处理装置的功能由结果处理模块完成。主机压力测试之后都需要马上对交易结果进行分析,以便相关部门得到详细的测试结果进行参考。由于LoadRunner测试工具只是一个通用的测试工具,因此只能局限得到一些通用的测试指标,如交易响应时间、每秒交易数等指标,并不能得到专门针对主机交易的详细结果。为此在主机压力测试框架交易库中的每个主机交易程序中编写日志生成程序,然后通过结果处理程序自动对测试工具LoadRunner中的结果日志文件进行分析,将交易结果提出,产生所需要的交易统计分类数据。
结果处理模块对交易进行分析,产生统计数据。它读入LoadRunner在压力测试过程产生的日志文件,结合逻辑控制模块在压力测试过程中记录下的返回信息对压力测试进行统计,并按交易号或响应代码整理出各交易的最大响应时间、平均响应时间、交易成功比例、各类错误返回代码比率等测试结果汇总表,同时列出LoadRunner记录的每秒交易数、并发用户数等变化曲线,以便进行性能分析。
系统输入:日志文件及其所在目录的路径名。
系统输出:结果数据库ErrResult.mdb(Access数据库),内有表ErrResult(错误交易明细表)、PassResult(通过交易明细表)、NovaErr(交易错误和网关错误表)和相关查询,如错误交易汇总,错误交易明细,错误类别汇总,通过交易汇总,通过交易明细。具体数据库表结构设计如下:
ErrResult表。包括8个字段:Gate(网关号),TransName(交易名称),Area(地区号),Node(网点号)、Teller(柜员号),Money(交易金额),ErrCode(错误码),Parm(交易参数);
PassResult表。包括7个字段:Gate(网关号),TransName(交易名称),Area(地区号),Node(网点号)、Teller(柜员号),Money(交易金额),Parm(交易参数);
NovaErr表。包括2个字段:ErrCode(错误码),ErrDetail(详细错误描述)。
通过上面的三个表可以灵活生成以下五个查询:
错误交易明细查询:显示每个错误结果。
错误交易汇总查询:统计每个错误交易的个数,及其错误信息和交易示例参数。
错误类别汇总查询:统计每个交易共有哪几种类型的错误,每个错误的个数是多少。
通过交易明细查询:显示每个通过交易结果。
通过交易汇总查询:统计每个通过交易的个数,可按地区、网点进行汇总。
数据错误处理过程是根据输入的日志文件路径,得到此路径下的所有日志文件列表。根据文件列表循环打开每个文件,并按照关键字对每个文件进行搜索并分析处理,得到交易记录,并将其依次写入数据库中。如此反复,直至处理完所有文件。由于一般日志文件都比较大(几十到几百兆),此处理过程有大量的I/O过程,因此将此处理过程放入辅助线程中进行。结果生成后,可执行相应的查询得到需要的结果。
结果处理模块程序流程图见图17所示。其流程说明如下:
a.初始化创建和连接数据库;
b.循环读取日志文件的每一行,分别获取Gate值、地区号、网点号、柜员号、金额及交易参数。
c.若存在交易的错误号,则将Gate值、地区号、网点号、柜员号、金额及交易参数一起作为一条记录写入数据库的ErrResult表中。
d.若存在交易状态值,则将Gate值、区号、点号、员号、额及交易参数一起作为一条记录写入数据库的PassResult表中。
e.日志文件读取完毕,结束。
本发明效果及优点在于,主机压力测试系统能模拟工行所有的联机交易(柜面交易、ATM、POS、自助终端、网银)。
传统的压力测试需要准备许多资源,如大量的测试人员和测试机器。并且人工测试面临着许多问题:如何协调多个测试人员同步进行测试?如何收集和分析测试结果?如何使测试同步进行。主机压力测试系统不仅解决上述了人工压力测试中存在的问题,而且提高了测试的效率和可靠性,具体有以下好处:节省资源,只需要极少的资源进行测试,而无需安排大量测试人员和设备;测试执行者易于管理压力测试同步进行;测试结果易于统计和分析;可重复运行。
本发明主机压力测试系统可以减少人为因素导致测试质量不稳定的情况;通过使用交易模板库,使系统扩展性强;测试数据准备、压力测试执行测试以及结果收集分析等过程分别由数据采集、数据预处理、测试控制、结果处理这四个装置执行,无需人工干预,基本实现自动化;测试对象具有多样性,可根据需要对DSR网关、综合前置、通用网关、主机等进行压力测试。
以上具体实施方式仅用于说明本发明,而非用于限定本发明。

Claims (9)

1.一种银行主机运行压力测试系统,包括:银行主机端、以及与所述银行主机端相耦合的载有测试工具的测试微机端;其特征在于,
所述的银行主机端包括:
测试业务数据库,用于存储银行业务数据;
测试业务运行单元,用于处理银行测试业务数据,更新所述的测试业务数据库,反馈测试信息;
数据采集单元,从所述的测试业务数据库中采集数据,生成银行主机测试文件;
所述的测试微机端包括:
数据预处理单元,用于对所述的主机测试文件进行处理,生成测试需要的用户文件、数据文件、交易参数文件;
测试控制单元,用于读取所述的用户文件、数据文件、交易参数文件;并控制测试工具向所述的银行主机端发送交易数据包;通过所述的测试工具生成日志文件,记录反馈的测试信息;
测试结果处理单元,用于读取所述的日志文件,结合所述的反馈信息,输出测试结果。
2.根据权利要求1所述的银行主机运行压力测试系统,其特征在于,所述的银行主机端由主机和银行业务前置机组成;所述的主机载有或连接有所述的测试业务数据库,所述的主机载有所述的测试业务运行单元;所述的银行业务前置机与所述的主机连接,用于接收所述的交易数据包,判断所述交易数据包的合法性,生成主机通信协议数据包并发送给所述的主机;向所述的微机端返回主机处理结果。
3.根据权利要求1所述的银行主机运行压力测试系统,其特征在于,所述的微机端由测试控制机和测试代理机组成,其中:
所述的测试控制机载有所述的数据预处理单元、测试结果处理单元及测试工具;所述的测试代理机载有所述的测试控制单元及测试工具。
4.根据权利要求3所述的银行主机运行压力测试系统,其特征在于,所述的测试代理机是指:由多台测试代理机组成的测试代理机组。
5.根据权利要求4所述的银行主机运行压力测试系统,其特征在于,所述的银行主机端由主机和银行业务前置机组成;所述测试代理机组中的各测试代理机的一端与一测试控制机联接,各测试代理机的另一端与一银行业务前置机联接;
所述的主机载有或连接有所述的测试业务数据库,所述的主机载有所述的测试业务运行单元;所述的银行业务前置机与所述的主机连接,用于接收所述各测试代理机发来的交易数据包,判断所述交易数据包的合法性,生成主机通信协议数据包并发送给所述的主机;向对应的测试代理机返回主机处理结果。
6.根据权利要求5所述的银行主机运行压力测试系统,其特征在于,所述的测试业务数据库存储有银行地区数据、银行网点数据、银行柜员数据、以及多种银行业务数据;
所述的数据采集单元是指在所述主机上开发的一个批量作业,该批量作业按一定比例算法从所述测试业务数据库里提取银行地区数据、银行网点数据、银行柜员数据,在所述主机上运行,若该地区有满足条件的柜员,则写所述主机测试文件的地区号部分、网点号部分、柜员号部分;
该批量作业按一定比例算法从所述测试业务数据库里提取银行业务数据,在所述主机上运行,若该地区有满足条件的银行业务,则写所述主机测试文件的银行业务部分;从而生成所述的主机测试文件。
7.根据权利要求5所述的银行主机运行压力测试系统,其特征在于,所述的数据预处理单元进一步包括:
中间文件生成部分,用于读取主机测试文件,将主机测试文件按照不同的数据类型分为三个中间文件以供生成柜员文本时读取;
初始化地区比例结构数组部分,用于生成地区比例结构数组以供生成柜员文本时读取;
生成柜员文本中间文件部分,若柜员文本按照地区比例分配,则需要用到地区比例结构数组;
初始化网关比例结构数组部分,用于生成网关比例结构数组以供生成用户文件、数据文件名、参数文件时读取;
初始化交易比例结构数组部分,用于生成交易比例结构数组以供填充数据文件时使用;
利用网关比例结构数组部分,用于生成用户文件、数据文件名、参数文件;
利用交易比例结构数组填充数据文件部分。
8.根据权利要求5所述的银行主机运行压力测试系统,其特征在于,所述的测试控制单元进一步包括:逻辑控制模块、交易模板库;其中:
由所述的测试工具发起多个测试进程,每个测试进程调用对应的一个辑控制模块,每一个逻辑控制模块获取发起的交易和柜员号,调用交易模板库中的相应交易模板,填入具体交易数据,组成各类交易的数据包,将该数据包发送到所述的银行前置机;并且每一个逻辑控制模块接收所述银行前置机的返回信息,记录测试结果。
9.根据权利要求5所述的银行主机运行压力测试系统,其特征在于,所述的测试结果处理单元进一步包括:
输入部分:获取所述的日志文件及其所在目录的路径名;
输出部分:输出错误交易明细表、通过交易明细表、交易错误和网关错误表;
查询部分:用于进行错误交易汇总查询、错误交易明细查询、错误类别汇总查询、通过交易汇总查询、通过交易明细查询。
CNB2005100557321A 2005-03-18 2005-03-18 一种银行主机运行压力测试系统 Active CN100349133C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100557321A CN100349133C (zh) 2005-03-18 2005-03-18 一种银行主机运行压力测试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100557321A CN100349133C (zh) 2005-03-18 2005-03-18 一种银行主机运行压力测试系统

Publications (2)

Publication Number Publication Date
CN1648874A true CN1648874A (zh) 2005-08-03
CN100349133C CN100349133C (zh) 2007-11-14

Family

ID=34876762

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100557321A Active CN100349133C (zh) 2005-03-18 2005-03-18 一种银行主机运行压力测试系统

Country Status (1)

Country Link
CN (1) CN100349133C (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100437514C (zh) * 2006-12-22 2008-11-26 中国建设银行股份有限公司 银行主机压力测试方法及测试机
CN101369250B (zh) * 2008-10-08 2010-09-29 上海闻泰电子科技有限公司 一种基于Shell的带日志执行方法
CN101093462B (zh) * 2006-06-22 2011-02-09 上海全成通信技术有限公司 数据库应用集群压力测试自动化方法
CN102158373A (zh) * 2011-05-12 2011-08-17 哈尔滨工业大学 面向银行中间业务的高端服务器性能评测系统
CN103729361A (zh) * 2012-10-12 2014-04-16 百度在线网络技术(北京)有限公司 一种数据库性能测试方法及装置
CN101989255B (zh) * 2009-08-05 2014-08-20 中国银联股份有限公司 联机认证测试的认证测试报告自动生成方法
CN105808420A (zh) * 2014-12-31 2016-07-27 阿里巴巴集团控股有限公司 健壮性测试过程的实现方法和装置
CN105825428A (zh) * 2016-04-22 2016-08-03 中国农业银行股份有限公司 一种面向商业银行的生产模拟测试方法和系统
CN106155906A (zh) * 2016-07-05 2016-11-23 中国银行股份有限公司 一种银行主机内部测试系统及方法
CN106528825A (zh) * 2016-11-21 2017-03-22 中国农业银行股份有限公司 一种银行系统压力测试关联交易的发压方法及系统
CN106920346A (zh) * 2015-12-28 2017-07-04 航天信息股份有限公司 基于pos收单业务的自动化测试方法
CN108536570A (zh) * 2018-03-28 2018-09-14 口碑(上海)信息技术有限公司 数据直播间灰度压测的方法、装置及系统
CN109309596A (zh) * 2017-07-28 2019-02-05 阿里巴巴集团控股有限公司 一种压力测试方法、装置及服务器
CN110599330A (zh) * 2019-09-12 2019-12-20 中国工商银行股份有限公司 银行通用的反交易装置、方法及系统
CN111444073A (zh) * 2020-03-26 2020-07-24 中国信息通信研究院 用于测试金融数据库性能的方法、装置和系统
CN112416725A (zh) * 2020-11-02 2021-02-26 北京三快在线科技有限公司 一种压力测试方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934934B1 (en) * 1999-08-30 2005-08-23 Empirix Inc. Method and system for software object testing
US6799213B1 (en) * 2000-08-31 2004-09-28 Sprint Communications Company, L.P. System and method for performing interactive server load testing through use of one or more virtual users being configured as a server client capable of transmitting one or more server test actions
US6665626B2 (en) * 2001-11-14 2003-12-16 Inventec Corporation Network-based computer testing system

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101093462B (zh) * 2006-06-22 2011-02-09 上海全成通信技术有限公司 数据库应用集群压力测试自动化方法
CN100437514C (zh) * 2006-12-22 2008-11-26 中国建设银行股份有限公司 银行主机压力测试方法及测试机
CN101369250B (zh) * 2008-10-08 2010-09-29 上海闻泰电子科技有限公司 一种基于Shell的带日志执行方法
CN101989255B (zh) * 2009-08-05 2014-08-20 中国银联股份有限公司 联机认证测试的认证测试报告自动生成方法
CN102158373A (zh) * 2011-05-12 2011-08-17 哈尔滨工业大学 面向银行中间业务的高端服务器性能评测系统
CN102158373B (zh) * 2011-05-12 2013-06-05 哈尔滨工业大学 面向银行中间业务的高端服务器性能评测系统
CN103729361A (zh) * 2012-10-12 2014-04-16 百度在线网络技术(北京)有限公司 一种数据库性能测试方法及装置
CN105808420A (zh) * 2014-12-31 2016-07-27 阿里巴巴集团控股有限公司 健壮性测试过程的实现方法和装置
CN105808420B (zh) * 2014-12-31 2018-12-28 阿里巴巴集团控股有限公司 健壮性测试过程的实现方法和装置
CN106920346A (zh) * 2015-12-28 2017-07-04 航天信息股份有限公司 基于pos收单业务的自动化测试方法
CN105825428A (zh) * 2016-04-22 2016-08-03 中国农业银行股份有限公司 一种面向商业银行的生产模拟测试方法和系统
CN106155906A (zh) * 2016-07-05 2016-11-23 中国银行股份有限公司 一种银行主机内部测试系统及方法
CN106155906B (zh) * 2016-07-05 2019-01-15 中国银行股份有限公司 一种银行主机内部测试系统及方法
CN106528825A (zh) * 2016-11-21 2017-03-22 中国农业银行股份有限公司 一种银行系统压力测试关联交易的发压方法及系统
CN106528825B (zh) * 2016-11-21 2019-06-18 中国农业银行股份有限公司 一种银行系统压力测试关联交易的发压方法及系统
CN109309596A (zh) * 2017-07-28 2019-02-05 阿里巴巴集团控股有限公司 一种压力测试方法、装置及服务器
CN108536570A (zh) * 2018-03-28 2018-09-14 口碑(上海)信息技术有限公司 数据直播间灰度压测的方法、装置及系统
CN108536570B (zh) * 2018-03-28 2020-12-25 口碑(上海)信息技术有限公司 数据直播间灰度压测的方法、装置及系统
CN110599330A (zh) * 2019-09-12 2019-12-20 中国工商银行股份有限公司 银行通用的反交易装置、方法及系统
CN110599330B (zh) * 2019-09-12 2023-04-07 中国工商银行股份有限公司 银行通用的反交易装置、方法及系统
CN111444073A (zh) * 2020-03-26 2020-07-24 中国信息通信研究院 用于测试金融数据库性能的方法、装置和系统
CN112416725A (zh) * 2020-11-02 2021-02-26 北京三快在线科技有限公司 一种压力测试方法及装置

Also Published As

Publication number Publication date
CN100349133C (zh) 2007-11-14

Similar Documents

Publication Publication Date Title
CN1648874A (zh) 一种银行主机运行压力测试系统
CN101339532B (zh) 一种Web应用系统的自动化测试方法及装置
CN1650279A (zh) 企业业务过程管理的方法和系统
US8819492B2 (en) System and method for testing and analyses of the computer applications
CN1294725A (zh) 提供交易服务的设备和方法
US8224762B2 (en) Information processing method and apparatus for business process analysis
CN1783019A (zh) 用于创建web服务并与其交互的接口基础结构
CN1265207A (zh) 生成2000年测试例的系统和方法
CN101048732A (zh) 面向对象的数据集成服务体系结构
CN1278623A (zh) 信息处理方法、信息终端支持服务器和储存信息处理程序的存储媒介
CN102812451A (zh) 软件应用测试
CN1460219A (zh) 综合关于金融交易的交易信息的设备
CN1866260A (zh) 向用户可操作设备提供程序的方法和系统
CN101221503A (zh) 软件测试方法及装置
CN1728153A (zh) 支持配置实体的选择性表示的配置说明语言的方法和系统
CN1737598A (zh) 用于配置在线测试的自动化调试的方法和装置
CN1744054A (zh) 一种自动化测试辅助系统及相应的软件自动测试方法
CN100345105C (zh) 办公应用程序中用于提供内容相关帮助信息的方法和系统
Breivold et al. A systematic review of studies of open source software evolution
Noikajana et al. An improved test case generation method for web service testing from WSDL-S and OCL with pair-wise testing technique
US6993505B1 (en) Method and system for performing CRA, HMDA, and fair lending analysis and reporting for a financial institution
CN1633638A (zh) 在外貌特征模式中带有总功能特性的连接实体
Epizitone et al. Critical success factors for ERP system implementation to support financial functions
CN1506897A (zh) 结算项目自动分类方法及其程序
Dakrory et al. Automated ETL testing on the data quality of a data warehouse

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant