CN105825428A - 一种面向商业银行的生产模拟测试方法和系统 - Google Patents
一种面向商业银行的生产模拟测试方法和系统 Download PDFInfo
- Publication number
- CN105825428A CN105825428A CN201610258502.3A CN201610258502A CN105825428A CN 105825428 A CN105825428 A CN 105825428A CN 201610258502 A CN201610258502 A CN 201610258502A CN 105825428 A CN105825428 A CN 105825428A
- Authority
- CN
- China
- Prior art keywords
- data
- transaction
- daily record
- concurrent
- production
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Abstract
本申请公开了一种面向商业银行的生产模拟测试方法和系统,应用于商业银行的主机,用于对商业银行的信息系统进行压力测试。具体为,以生产系统日志数据为基础数据源,首先将生产系统日志数据与人工干预数据混合建序,并对其中的关联交易进行有序归纳及白名单设定,然后将整理后的数据码制格式进行处理使其达到在商业银行的主机系统发压要求。再按预先设置交易码及相应并发数等指令的方法将所述协议报文对所述信息系统进行综合发压测试。上述生产模拟测试方法和系统,能够根据测试的结果及时发现程序的严重缺陷,并根据发现的缺陷采取相应的应对措施,保证了信息系统的健康稳健。
Description
技术领域
本申请涉及银行技术领域,更具体地说,涉及一种商业银行信息系统在主机上的生产模拟测试方法和系统。
背景技术
银行业的信息系统是当前最为复杂IT架构,它所涉及的子系统之多,以及子系统之间的交叠是其它系统所无法想象的。正是因为银行业务交易的复杂性和多样性,使得测试难度大,常规的单交易测试,无法完全覆盖对日常生产多场景的模拟检验,致使程序严重缺陷不能及时发现,同时常规测试数据量较小,对于交易并发场景也较难模拟。为此,基于实际生产数据的生产模拟测试方法,显得尤为必要。
发明内容
有鉴于此,本申请提供了一种面向商业银行的生产模拟测试方法,具体包括数据源选取、数据整理、数据转换、综合测试四个部分,基于所述方法,实现了对商业银行信息系统的测试,并保证了测试过程中的稳定、高效率以及高覆盖率。
一种面向商业银行的生产模拟测试方法,该方法针对于商业银行的主机系统,以生产系统日志数据为基础数据源,通过合理、有序的于人工干预数据进行混合、建序,并对其中的关联交易进行序归纳、黑名单设定,解决了单并发交易无法与多并发交易进行综合测试等问题,完成了对生产运行的模拟。包括步骤:
数据源选取:选取用于对所述商业银行的信息系统进行压力测试用的数据人工干预数据两者相结合的方法,所述人工干预数据具体为新开发未投产的交易报文,通过预设的筛选条件进行数据源筛选,使生产系统日志、人工干预数据进行混合,并有针对性地对未来投产后的场景进行了模拟,为投产提供依据。
数据整理;对所述选取的数据源进行整理,以达到符合生产运行场景的预期。在此过程中,为了能够更充分的模拟预投产交易在生产上的情况,采用生产系统日志、人工干预数据交错排列的方法;为了保证在并发机制下,交易能够完全按照实际发生的顺序进行发压,基于日志号对发压顺序进行排序,避免了由于前后依赖关系导致的交易错误;为了能保证数据整理后的并发要求,对发压报文顺序号进行重编,重编过程中采用关联日志号处理方法,确保交易的可关联性;
数据转换:所述整理后的数据,满足了生产运行场景的预期,但并不符合主机系统中运行上的协议、码制要求,并不能直接运行。通过对原始数据增加协议内容,以及对数据编码格式进行处理,达到在IBM主机系统上发压的报文要求;
综合测试:按预先设置交易码及相应并发数等指令的方法将所述协议报文对所述信息系统进行发压操作;在发压过程中为了模拟生产,进行了发压数据源相关联交易的关联性处理,在发压过程中反映为发压返回内容的相关性,发压过程中需要对这种关联交易进行实时关联处理;另外,为了避免数据库锁等问题,生产上部分交易是单并发处理,在多并发下,通过“黑名单”建立了交易的单并发机制;同时为了确保压力,避免在发压过程中由于程序的异常终止导致的并发进程减少,增加了并发数的监控机制,对异常终止的并发进程进行补充;
可选的,所述基于生产系统的日志数据和人工干预数据相结合的方法产生数据源,包括:
将所述生产系统日志数据和所述人工干预数据进行混合;
对混合后得到的混合数据利用预设的筛选条件进行筛选,得到所述数据源。
可选的,所述通过将所述数据源中的所述生产系统日志和人工干预数据进行交错排列、重新编号和关联设定,对所述数据源进行整理,包括:
将所述生产系统日志数据和人工干预数据进行平均交错排列,确保测试能够更加真实的反应生产场景;
根据日志号对经过交错排列的所述生产系统日志数据和人工干预数据进行从1开始顺序递增的重新编号,确保发压的连续性,从而保证压力的稳定性;
经过重新编号后的所述生产系统日志数据和人工干预数据,以交易关联性特征,通过顺序遍历,抽取交易间的关联性,找出关联交易,对关联交易的日志号进行关联匹配,确保在发压过程中能够通过所述关联设定找到关联交易,确保关联交易在测试过程中的正确性。所述交易关联性特征包括日志号、交易码、程序名称等。
可选的,所述将整理后的所述数据源进行格式处理,得到满足所述主机系统要求的协议报文,包括:
在经过整理后的所述数据源中增加预设的协议内容;
将加入所述协议内容的所述数据源进行预设编码格式处理,得到满足所述主机系统要求的协议报文。
可选的,所述单并发控制包括:
当对所述主机系统采取所述多并发方式进行发压测试时,通过预设黑名单的方式建立单并发机制,黑名单中的交易在多并发设定下,能够按照单并发,按照时间发生的先后顺序进行在多并发压力下确保单并发处理,真实的模拟生产设定,避免由于交易多并发下资源冲突导致的交易报错。
可选的,所述实时交易关联包括:
当对所述主机系统采取所述多并发方式进行发压测试时,当待测报文需要关联已测报文时,利用所述关联设定,实时查询出需关联交易在被测系统返回的日志号,待测报文附带该日志号信息发给所述主机系统,所述主机系统据此识别出关联交易,确保交易的正确性。
可选的,还包括步骤:
在对所述主机系统进行综合发压测试的同时,通过设置单独进程进行全局进行并发进程监控;
对比设置并发要求,当监控到存在并发进程异常时,对异常终止的并发进程进行补充。
一种面向商业银行的生产模拟测试系统,应用于商业银行的主机,包括:
数据源选取模块,选取用于对商业银行的信息系统进行压力测试用的数据。采取生产系统日志数据与人工干预数据两者相结合的方法,通过预设的筛选条件进行数据源筛选,使生产系统日志、人工干预数据进行混合;
数据整理模块,用于对所述数据源进行整理,采用生产系统日志、人工干预数据交错排列的方法;为了保证在并发机制下,交易能够完全按照实际发生的顺序进行发压,基于日志号对发压顺序进行排序,避免了由于前后依赖关系导致的交易错误;为了能保证数据整理后的并发要求,对发压报文顺序号进行重编,重编过程中采用关联日志号处理方法,确保交易的可关联性;
数据转换模块,用于将所述整理后的数据增加协议内容,以及对数据编码格式进行处理,得到满足在IBM主机系统上发压要求的协议报文;
综合测试模块,按预先设置交易码及相应并发数等指令的方法将协议报文对信息系统进行发压操作;在发压过程中为了模拟生产,进行了发压数据源相关联交易的关联性处理,在发压过程中反映为发压返回内容的相关性,发压过程中需要对这种关联交易进行实时关联处理;另外,为了避免数据库锁等问题,生产上部分交易是单并发处理,在多并发下,通过“黑名单”建立了交易的单并发机制;同时为了确保压力,避免在发压过程中由于程序的异常终止导致的并发进程减少,增加了并发数的监控机制,对异常终止的并发进程进行补充。
可选的,所述数据源选取模块包括:
数据混合单元,用于将所述生产系统日志数据和所述人工干预数据进行混合;
数据筛选单元,用于对数据混合单元进行混合操作后得到的混合数据利用预设的筛选条件进行筛选,得到所述数据源。
可选的,所述数据整理模块包括:
数据排列单元,用于将所述生产系统日志数据和人工干预数据进行平均交错排列,确保测试能够更加真实的反应生产场景;
数据重整单元,用于根据日志号对经过交错排列的所述生产系统日志数据和人工干预数据进行从1开始顺序递增的重新编号,确保发压的连续性,从而保证压力的稳定性;
日志关联单元,用于经过所述数据重整单元重新编号后的所述生产系统日志数据和人工干预数据,以交易关联性特征,通过顺序遍历,抽取交易间的关联性,找出关联交易,对关联交易的日志号进行关联匹配,确保在发压过程中能够通过所述关联设定找到关联交易,确保关联交易在测试过程中的正确性。所述交易关联性特征包括日志号、交易码、程序名称等。
可选的,所述数据转换模块包括:
协议整合单元,用于在经过整理后的所述数据源中增加预设的协议内容;
编码整合单元,将加入所述协议内容的所述数据源进行预设编码格式处理,得到满足所述主机系统要求的协议报文。
可选的,所述综合测试模块包括:
单并发控制单元,用于当对所述主机系统采取所述多并发方式进行发压测试时,通过预设黑名单的方式建立单并发机制,黑名单中的交易在多并发设定下,能够按照单并发,按照时间发生的先后顺序进行在多并发压力下确保单并发处理,真实的模拟生产设定,避免由于交易多并发下资源冲突导致的交易报错。
可选的,所述综合测试模块包括:
实时交易关联单元,用于当对所述主机系统采取所述多并发方式进行发压测试时,当待测报文需要关联已测报文时,利用权力要求3所述的关联设定,实时查询出需关联交易在被测系统返回的日志号,待测报文附带该日志号信息发给被测系统,被测系统据此识别出关联交易,确保交易的正确性。
可选的,还包括:
进程监控模块,用于在对所述主机系统进行综合发压测试的同时,通过设置单独进程进行全局进行并发进程监控;
进程补充模块,用于对比设置并发要求,当监控到存在并发进程异常时,对异常终止的并发进程进行补充。
从上述的技术方案可以看出,本申请公开了一种面向商业银行的生产模拟测试方法和系统,应用于商业银行的主机,用于对商业银行的信息系统进行压力测试。具体为,以生产系统日志数据为基础数据源,首先将生产系统日志数据与人工干预数据混合建序,并对其中的关联交易进行有序归纳及白名单设定,然后将整理后的数据码制格式进行处理使其达到在商业银行的主机系统发压要求。再按预先设置交易码及相应并发数等指令的方法将所述协议报文对所述信息系统进行综合发压测试。通过上述生产模拟测试方法和系统,有针对性地对未来投产后的场景进行模拟,按照交易的关联性,在确保压力的基础上避免了死锁,解决了单并发交易无法与多并发交易进行综合测试等问题,完成了对生产运行的模拟测试。从而能够根据测试的结果及时发现程序的严重缺陷,并根据发现的缺陷采取相应的应对措施,保证了信息系统的健康稳健。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种面向商业银行的生产模拟测试方法的流程图;
图2为本申请提供的一种数据源选取示例图;
图3为本申请提供的一种数据整理示例图;
图4为本申请提供的一种报文格式转换处理流程图;
图5为本申请提供的一种NETE报文转换实例图;
图6为本申请提供的一种NETE报文转换流程图;
图7为本申请提供的一种监控示意图;
图8为本申请提供的一种发压过程中关联交易可关联性示例图;
图9为本申请提供的一种黑名单处理示例图;
图10为本申请另一实施例提供的一种面向商业银行的生产模拟测试系统的结构框图;
图11为本申请另一实施例提供的另一种面向商业银行的生产模拟测试系统的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明记提供了一种面向商业银行的生产模拟测试方法包括数据源选取、数据整理、数据转换、综合测试四个部分,实现了对商业银行信息系统的测试,并保证了测试过程中的稳定、高效率以及高覆盖率。
一种面向商业银行的生产模拟测试方法该方法针对于商业银行的主机系统,以生产系统日志数据为基础数据源,通过合理、有序的于人工干预数据进行混合、建序,并对其中的关联交易进行序归纳、黑名单设定,解决了单并发交易无法与多并发交易进行综合测试等问题,完成了对生产运行的模拟。
数据源选取:首先,选取用于对商业银行的信息系统进行压力测试用的数据。采取生产系统日志数据与人工干预数据两者相结合的方法,人工干预数据具体为新开发未投产的交易报文,通过预设的筛选条件进行数据源筛选,使生产系统日志、人工干预数据进行混合,并有针对性地对未来投产后的场景进行了模拟,为投产提供依据。
数据整理:然后,对选取的数据源进行整理,以达到符合生产运行场景的预期。在此过程中,为了能够更充分的模拟预投产交易在生产上的情况,采用生产系统日志、人工干预数据交错排列的方法;为了保证在并发机制下,交易能够完全按照实际发生的顺序进行发压,基于日志号对发压顺序进行排序,避免了由于前后依赖关系导致的交易错误;为了能保证数据整理后的并发要求,对发压报文顺序号进行重编,重编过程中采用关联日志号处理方法,确保交易的可关联性;
数据转换:之后,整理后的数据,满足了生产运行场景的预期,但并不符合主机系统中运行上的协议、码制要求,并不能直接运行。通过对原始数据增加协议内容,以及对数据编码格式进行处理,达到在IBM主机系统上发压的报文要求;
综合测试:最后按预先设置交易码及相应并发数等指令的方法将协议报文对信息系统进行发压操作;在发压过程中为了模拟生产,进行了发压数据源相关联交易的关联性处理,在发压过程中反映为发压返回内容的相关性,发压过程中需要对这种关联交易进行实时关联处理;另外,为了避免数据库锁等问题,生产上部分交易是单并发处理,在多并发下,通过“黑名单”建立了交易的单并发机制;同时为了确保压力,避免在发压过程中由于程序的异常终止导致的并发进程减少,增加了并发数的监控机制,对异常终止的并发进程进行补充。
鉴于上述的具体描述,本申请的具体实施方式的详细描述见下面的实施例。
实施例一
图1为本申请实施例提供的一种面向商业银行的生产模拟测试方法流程图。
如图1所示,本实施例提供的商业银行信息系统的综合压力测试方法用于对商业银行的信息系统进行压力测试,模拟生产的海量交易场景,由于被测对象是商业银行的主机上的信息系统,因此本方法应用于商业银行的主机上,具体包括如下步骤:
S101:基于日志数据和人工干预数据选取数据源。
为了更好地对信息系统进行压力测试,可以利用生产中的日志作为发压的数据源。如果是针对将要上线或变更的程序,想要测试它的投产对于整个信息系统的影响,我们把针对这些交易的测试日志中混入源生产系统日志一起发压,如图2所例:选取生产上的6条日志与3条测试日志作为原始的数据源作为基础,这样就能够达到充分测试性能的目的。
在实际操作过程中发现,由于个别交易投产上线,或者个别机构的交易投产上线,这些交易与其他交易或是机构的关联影响很小,需要针对这些交易,或者机构下的交易进行性能测试,这时通过预设的筛选条件进行数据源的筛选,从交易、机构两个维度的日志进行筛选,使测试更加具有针对性,同时也能减少测试时间,提高测试效率。
如图2所示,交易筛选条件为:交易码A,交易码B,交易码E;机构筛选条件为:机构2。在数据源选取时,通过筛选机制从生产日志中选出满足条件的数据源:100000001号、100000015号、100000020号日志;从未投产报文日志中筛选出满足条件的数据源:100000015号、100000017号日志。本发明提出的技术基于日志转换,只需要使用生产系统全天的日志表等信息即可模拟生产全天的交易场景,从而能够节省大量人力物力。
S102:通过交错排列、重新编号和关联设定对数据源进行整理。
如图3所示,利用筛选出来的生产日志与未投产报文日志,在数据整理过程中,首先是在保证选取的两组日志本身的顺序不变,因为只有交易能够完全按照实际发生的顺序进行发压,才能避免由于前后依赖关系导致的交易错误。
在混合生产日志与未投产交易报文日志时,采用的逐条交错进行的方式,每次先取生产日志,再取未投产交易报文日志,直到两个备选的队列中的日志都被选完为止,之后把剩下的报文日志按照原来的顺序拼接到混合后的报文日志队列的末尾,参见图3的上半部所示,日志的顺序为:生产日志100000001、未投产报文日志100000015、生产日志100000015、未投产报文日志100000017、生产日志100000020;
为了能保证数据整理后的并发要求,对发压报文顺序号进行重编,如图3下半部所示,对混合的报文日志从1开始重新编号。
上送报文的日志号中,比如源数据日志100000015为一笔授权交易,报文中描述了该授权交易是为日志100000001对应的交易进行的授权。为了确保授权交易能够准确的找到对应的需授权交易,在上述的重编日志号后,这种关联性也要同时进行修改,具体为报文日志100000015关联报文日志100000001,修改为报文日志3关联报文日志1,确保在后续测试步骤中的可关联性。生产上的交易的关联性,又不仅仅只是反应在顺序上,部分交易在具体报文中也反映了关联性。
S103:将数据源进行格式转换。
经过预处理的数据源,仍然不能作为直接发压用的报文,需要增加协议内容,同时也要对数据码制进行处理,才能达到在IBM主机系统上发压的报文要求。在此,使用的是NETE协议,发压入口是NETE/F5入口,SOCKET通信方法。NETE作为系统的前后通信机制,保证了报文的正确性与安全性。F5作为NETE前端的复杂均衡机制,对于报文来说是透明的,所以在转换NETE报文时候考虑到F5的对于报文头中关于省市标识的要求,统一进行处理,这样转换后的报文就能满足NETE入口和F5入口的发压的共同要求。NETE报文中具有程序结构描述信息,所以在进行数据恢复时候不仅需要原始生产日志,还需要生产程序的结构描述信息,这个信息记录在开发环境和准生产环境数据库中,故在进行NETE报文转换时候需要恢复这部分信息到发压环境。只有程序结构与数据、程序一致,才能保证能够正确发压,否则会出现前后不一致,后台异常终止现象,从而降低成功率。具体处理流程如图4所示。
通过程序从程序根据输入输出关系表,查出输入结构及输出结构,然后分别处理输入结构及输出结构,处理结构方法如图6右侧图示,处理过程如果遇到子结构,则进入子结构处理,同时记录DIT(DataInformationTag)信息,如果为字段数据,则记录DIT信息,继续处理结构中的下一个单元,优先底层结构处理完再继续处理上一层单元。
举例来说,如图5所示,原始数据源只包含了程序对应的输入数据:“a,1,-0.23,3”,需要根据程序找到程序的结构描述信息,如图中程序Z123456包含输入输出两个结构,输入结构包含两个原子char、int及一个子结构C,子结构C中包含两个原子decimal(5,4)和int,分别对应原始数据源中的数据;输出部分为一个原子short类型。综合原始数据及对应的程序结构信息进行报文的转换,包括协议格式及数据编码修改等,结果示例如图10右侧发压报文所示。
简化来说每条NETE报文转换方法如图6所示。
104:将协议报文对主机进行发压测试。
等指令的方法将所述协议报文对主机上的信息系统进行发压操作。可关联性机制在发压过程中便会用到,反映为发压返回内容的相关性,发压过程中需要对这种关联交易进行实时关联处理。如图8所示,在发压过程中当发送完1号需要授权交易后,该交易在被测信息系统中产生的日志号为100000001,而当发送2号授权交易时候,要修改报文中的关联的1为100000001,表示该授权是为了给被压系统上的100000001授权,而不是混编重拍后的数据源中的1号交易,这样就能够保证授权交易的正确性及1号交易能够继续下面的交易流程。
在生产上,由于数据库锁等机制问题,有些交易在生产上要求不能并发,故在发压时也考虑了该问题,设置了交易“黑名单”,该“黑名单”中的交易要求在发压时不按照预设的发压并发数进行发压,而是单独的进行单进程发压,这样才能保证与生产一致,同时也保证了交易的正确性。如图9所示,并发数为3,体现为一般发压进程为3个,在发压过程中,如果检测出该交易不是黑名单中的交易,则会把该报文日志发给一般交易发压进程进行处理,否则把该报文日志发给黑名单发压进程处理,此进程为按照真实的发生顺序单并发。
为了达到发压要求,保证TPS(吞吐量),本方法还对并发数进行监控,设计中采用可设置并发数要求,并发数为单个发压单元上起的发压进程数,在发压前进行配置,为了避免由于发压进程异常终止,出现发压进程数量减少,从而导致TPS降低现象,即当并发数小于预设并发数时,进行补起发压进程。如图8所示,设置的并发数为3,当出现一个发压进程(虚框所示)异常终止后,监控机制会在第一时间捕获该异常,在该发压单元上补起1个发压进程,保证并发数仍然是3,确保发压稳定性。
由于发压过程在主机上,不便于直观监控,此处利用数据库,主机NC计数器等主机资源进行相应的记录,这些记录可以更加直观的展示给测试人员。在发压结束后,针对整个发压场景进行统计,作为发压报告的最直接的依据。
一种面向商业银行的生产模拟测试方法,应用于商业银行的主机,用于对商业银行的信息系统进行压力测试。具体为,以生产系统日志数据为基础数据源,首先将生产系统日志数据与人工干预数据混合建序,并对其中的关联交易进行有序归纳及白名单设定,然后将整理后的数据码制格式进行处理使其达到在商业银行的主机系统发压要求。再按预先设置交易码及相应并发数等指令的方法将所述协议报文对所述信息系统进行综合发压测试。通过这种面向商业银行的生产模拟测试方法和系统,有针对性地对未来投产后的场景进行模拟,按照交易的关联性,在确保压力的基础上避免了死锁,解决了单并发交易无法与多并发交易进行综合测试等问题,完成了对生产运行的模拟测试。从而能够根据测试的结果及时发现程序的严重缺陷,并根据发现的缺陷采取相应的应对措施,保证了信息系统的健康稳健。
实施例二
图10为本申请实施例提供的一种商业银行信息系统的综合压力测试系统的结构框图。
如图10所示,本实施例提供的商业银行信息系统的生产模拟测试方法用于对商业银行的信息系统进行压力测试,模拟生产的海量交易场景,由于被测对象是商业银行的主机上的信息系统,因此本系统应用于商业银行的主机上,具体包括数据源选取模块10、数据整理模块20、数据转换模块30和综合测试模块40。
数据源选取模块10用于选取数据源。
为了更好地对信息系统进行压力测试,数据选取模块10可以利用生产中的日志作为发压的数据源。数据源选取模块10包括数据混合单元,如果是针对将要上线或变更的程序,想要测试它的投产对于整个信息系统的影响,我们可以利用数据混合单元将针对这些交易的测试日志中混入源生产系统日志一起发压,如图2所例:选取生产上的6条日志与3条测试日志作为原始的数据源作为基础,这样就能够达到充分测试性能的目的。(数据源选取,方案是生产、测试的组合)
在实际操作过程中发现,由于个别交易投产上线,或者个别机构的交易投产上线,这些交易与其他交易或是机构的关联影响很小,需要针对这些交易,或者机构下的交易进行性能测试,这时通过预设的筛选条件进行数据源的筛选,从交易、机构两个维度的日志进行筛选,使测试更加具有针对性,同时也能减少测试时间,提高测试效率。
数据源选取模块10还包括数据筛选单元,数据筛选单元用于根据白名单筛选机制对数据进行筛选,筛选单元的筛选条件为:交易码A,交易码B,交易码E;机构筛选条件为:机构2。在数据源选取时,通过筛选机制从生产日志中选出满足条件的数据源:100000001号、100000015号、100000020号日志;从未投产报文日志中筛选出满足条件的数据源:100000015号、100000017号日志。本发明提出的技术基于日志转换,只需要使用生产系统全天的日志表等信息即可模拟生产全天的交易场景,从而能够节省大量人力物力。
数据整理模块20用于对数据源进行整理,具体包括数据排列单元、数据重整单元和日志关联单元。
如图3所示,利用筛选出来的生产日志与未投产报文日志,在数据整理过程中,首先是利用数据排列单元保证选取的两组日志本身的顺序不变,因为只有交易能够完全按照实际发生的顺序进行发压,才能避免由于前后依赖关系导致的交易错误。
在混合生产日志与未投产交易报文日志时,采用的逐条交错进行的方式,每次先取生产日志,再取未投产交易报文日志,直到两个备选的队列中的日志都被选完为止,之后把剩下的报文日志按照原来的顺序拼接到混合后的报文日志队列的末尾,参见图3的上半部所示,日志的顺序为:生产日志100000001、未投产报文日志100000015、生产日志100000015、未投产报文日志100000017、生产日志100000020;
为了能保证数据整理后的并发要求,需要利用数据重整单元对发压报文顺序号进行重编,如图3下半部所示,对混合的报文日志从1开始重新编号。
上送报文的日志号中,比如源数据日志100000015为一笔授权交易,报文中描述了该授权交易是为日志100000001对应的交易进行的授权。
为了确保授权交易能够准确的找到对应的需授权交易,在数据重整单元重编日志号后,利用日志关联单元将这种关联性同时进行修改,具体为报文日志100000015关联报文日志100000001,修改为报文日志3关联报文日志1,确保在后续测试步骤中的可关联性。生产上的交易的关联性,又不仅仅只是反应在顺序上,部分交易在具体报文中也反映了关联性。
数据转换模块30用于将基础数据源进行格式转换,具体包括协议整合单元和编码整合单元。
经过预处理的基础数据源,仍然不能作为直接发压用的报文,需要增加协议内容,同时也要对数据码制进行处理,才能达到在IBM主机系统上发压的报文要求。在此,使用的是NETE协议,发压入口是NETE/F5入口,SOCKET通信方法。NETE作为系统的前后通信机制,保证了报文的正确性与安全性。F5作为NETE前端的复杂均衡机制,对于报文来说是透明的,所以在转换NETE报文时候考虑到F5的对于报文头中关于省市标识的要求,利用协议整合单元对数据源统一进行处理,这样转换后的报文就能满足NETE入口和F5入口的发压的共同要求。
NETE报文中具有程序结构描述信息,所以在进行数据恢复时候不仅需要原始生产日志,还需要生产程序的结构描述信息,这个信息记录在开发环境和准生产环境数据库中,故在进行NETE报文转换时候需要恢复这部分信息到发压环境。只有程序结构与数据、程序一致,才能保证能够正确发压,否则会出现前后不一致,后台异常终止现象,从而降低成功率。具体处理流程如图4所示。
通过程序从程序根据输入输出关系表,查出输入结构及输出结构,然后分别处理输入结构及输出结构,处理结构方法如图6右侧图示,处理过程如果遇到子结构,则进入子结构处理,同时记录DIT(DataInformationTag)信息,如果为字段数据,则记录DIT信息,继续处理结构中的下一个单元,优先底层结构处理完再继续处理上一层单元。
举例来说,如图5所示,原始数据源只包含了程序对应的输入数据:“a,1,-0.23,3”,需要根据程序找到程序的结构描述信息,如图中程序Z123456包含输入输出两个结构,输入结构包含两个原子char、int及一个子结构C,子结构C中包含两个原子decimal(5,4)和int,分别对应原始数据源中的数据;输出部分为一个原子short类型。编码整合单元用于综合原始数据及对应的程序结构信息进行报文的转换,包括协议格式及数据编码修改等,结果示例如图10右侧发压报文所示。
简化来说每条NETE报文转换方法如图6所示。
综合测试模块40用于将协议报文对主机进行发压测试,具体包括单并发控制单元和实时交易关联单元。
实时交易关联单元,用于当对主机系统采取多并发方式进行发压测试时,当待测报文需要关联已测报文时,利用关联设定实时查询出需关联交易在主机系统返回的日志号,待测报文附带该日志号信息发给主机系统,主机系统据此识别出关联交易,确保交易的正确性。
具体为根据指令的控制将所述协议报文对主机上的信息系统进行发压操作。可关联性机制在发压过程中便会用到,反映为发压返回内容的相关性,用于在发压过程中对这种关联交易进行实时关联处理。如图8所示,在发压过程中当发送完1号需要授权交易后,该交易在被测信息系统中产生的日志号为100000001,而当发送2号授权交易时候,要修改报文中的关联的1为100000001,表示该授权是为了给被压系统上的100000001授权,而不是混编重拍后的数据源中的1号交易,这样就能够保证授权交易的正确性及1号交易能够继续下面的交易流程。
在生产上,由于数据库锁等机制问题,有些交易在生产上要求不能并发,故在发压时也考虑了该问题,设置了交易“黑名单”,黑名单过滤单元利用该“黑名单”中的交易要求在发压时不按照预设的发压并发数进行发压,单并发控制单元用于控制单独地进行单进程发压,这样才能保证与生产一致,同时也保证了交易的正确性。如图9所示,并发数为3,体现为一般发压进程为3个,在发压过程中,如果检测出该交易不是黑名单中的交易,则会把该报文日志发给一般交易发压进程进行处理,否则把该报文日志发给黑名单发压进程处理,此进程为按照真实的发生顺序单并发。
由于发压过程在主机上,不便于直观监控,此处利用数据库,主机NC计数器等主机资源进行相应的记录,这些记录可以更加直观的展示给测试人员。在发压结束后,针对整个发压场景进行统计,作为发压报告的最直接的依据。
从上述技术方案可以看出,本实施例提供了一种面向商业银行的生产模拟测试系统,该系统应用于商业银行的主机系统,用于对商业银行的信息系统进行压力测试。具体为,以生产系统日志数据为基础数据源,首先将生产系统日志数据与人工干预数据混合建序,并对其中的关联交易进行有序归纳及白名单设定,然后将整理后的数据码制格式进行处理使其达到在商业银行的主机系统发压要求。再按预先设置交易码及相应并发数等指令的方法将所述协议报文对所述信息系统进行综合发压测试。通过这种面向商业银行的生产模拟测试方法和系统,有针对性地对未来投产后的场景进行模拟,按照交易的关联性,在确保压力的基础上避免了死锁,解决了单并发交易无法与多并发交易进行综合测试等问题,完成了对生产运行的模拟测试。从而能够根据测试的结果及时发现程序的严重缺陷,并根据发现的缺陷采取相应的应对措施,保证了信息系统的健康稳健。
另外,为了达到发压要求,保证TPS(吞吐量),本系统还包括进程监控模块50和进程补发模块60,如图11所示,进程监控模块50用于对并发数进行监控,设计中采用可设置并发数要求,并发数为单个发压单元上起的发压进程数,在发压前进行配置,为了避免由于发压进程异常终止,出现发压进程数量减少,从而导致TPS降低现象,进程补发模块60用于在并发数小于预设并发数时,进行补起发压进程。如图8所示,设置的并发数为3,当出现一个发压进程(虚框所示)异常终止后,监控机制会在第一时间捕获该异常,在该发压单元上补起1个发压进程,保证并发数仍然是3,确保发压稳定性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种面向商业银行的生产模拟测试方法,应用于商业银行的主机系统,其特征在于,包括步骤:
基于生产系统的日志数据和人工干预数据相结合的方法产生数据源;
通过将所述数据源中的所述生产系统日志数据和人工干预数据进行交错排列、重新编号和关联设定,对所述数据源进行整理;
将整理后的所述数据源进行格式处理,得到满足所述主机系统要求的协议报文;
根据预置的交易码和并发指令,将所述协议报文以预设的并发数,结合单并发控制、实时交易关联和并发监控机制对所述主机系统进行综合发压测试。
2.如权利要求1所述的生产模拟测试方法,其特征在于,所述基于生产系统的日志数据和人工干预数据相结合的方法产生数据源,包括:
将所述生产系统日志数据和所述人工干预数据进行混合;
对混合后得到的混合数据利用预设的筛选条件进行筛选,得到所述数据源。
3.如权利要求1所述的生产模拟测试方法,其特征在于,所述通过将所述数据源中的所述生产系统日志和人工干预数据进行交错排列、重新编号和关联设定,对所述数据源进行整理,包括:
将所述生产系统日志数据和人工干预数据进行平均交错排列,确保测试能够更加真实的反应生产场景;
根据日志号对经过交错排列的所述生产系统日志数据和人工干预数据进行从1开始顺序递增的重新编号,确保发压的连续性,从而保证压力的稳定性;
经过重新编号后的所述生产系统日志数据和人工干预数据,以交易关联性特征,通过顺序遍历,抽取交易间的关联性,找出关联交易,对关联交易的日志号进行关联匹配,确保在发压过程中能够通过所述关联设定找到关联交易,确保关联交易在测试过程中的正确性,所述交易关联性特征包括日志号、交易码和/或程序名称。
4.如权利要求1所述的生产模拟测试方法,其特征在于,所述将整理后的所述数据源进行格式处理,得到满足所述主机系统要求的协议报文,包括:
在经过整理后的所述数据源中增加预设的协议内容;
将加入所述协议内容的所述数据源进行预设编码格式处理,得到满足所述主机系统要求的协议报文。
5.如权利要求1所述的生产模拟测试方法,其特征在于,所述单并发控制包括:
当对所述主机系统采取所述多并发方式进行发压测试时,通过预设黑名单的方式建立单并发机制,黑名单中的交易在多并发设定下,能够按照单并发,按照时间发生的先后顺序进行在多并发压力下确保单并发处理,真实的模拟生产设定,避免由于交易多并发下资源冲突导致的交易报错。
6.如权利要求1所述的实生产模拟测试方法,其特征在于,所述实时交易关联包括:
当对所述主机系统采取所述多并发方式进行发压测试时,当待测报文需要关联已测报文时,利用所述关联设定,实时查询出需关联交易在被测系统返回的日志号,待测报文附带该日志号信息发给所述主机系统,所述主机系统据此识别出关联交易,确保交易的正确性。
7.如权利要求1~6任一项所述的生产模拟测试方法,其特征在于,还包括步骤:
在对所述主机系统进行综合发压测试的同时,通过设置单独进程进行全局进行并发进程监控;
对比设置并发要求,当监控到存在并发进程异常时,对异常终止的并发进程进行补充。
8.一种面向商业银行的生产模拟测试系统,应用于商业银行的主机系统,其特征在于,包括:
数据源选取模块,用于基于生产系统的日志数据和人工干预数据相结合的方法产生数据源;
数据整理模块,用于通过将所述数据源中的所述生产系统日志数据和人工干预数据进行交错排列、重新编号、关联设定的方式,对所述数据源进行整理;
数据转换模块,用于将所述数据整理模块整理后的所述数据源进行格式处理,得到满足所述主机系统要求的协议报文;
综合测试模块,用于根据预置的交易码和并发指令,将所述协议报文以预设的并发数,结合单并发控制、实时交易关联和并发监控机制对所述主机系统进行综合发压测试。
9.如权利要求8所述的生产模拟测试系统,其特征在于,所述数据源选取模块包括:
数据混合单元,用于将所述生产系统日志数据和所述人工干预数据进行混合;
数据筛选单元,用于对数据混合单元进行混合操作后得到的混合数据利用预设的筛选条件进行筛选,得到所述数据源。
10.如权利要求8所述的生产模拟测试系统,其特征在于,所述数据整理模块包括:
数据排列单元,用于将所述生产系统日志数据和人工干预数据进行平均交错排列,确保测试能够更加真实的反应生产场景;
数据重整单元,用于根据日志号对经过交错排列的所述生产系统日志数据和人工干预数据进行从1开始顺序递增的重新编号,确保发压的连续性,从而保证压力的稳定性;
日志关联单元,用于经过所述数据重整单元重新编号后的所述生产系统日志数据和人工干预数据,以交易关联性特征,通过顺序遍历,抽取交易间的关联性,找出关联交易,对关联交易的日志号进行关联匹配,确保在发压过程中能够通过所述关联设定找到关联交易,确保关联交易在测试过程中的正确性,所述交易关联性特征包括日志号、交易码和/或程序名称。
11.如权利要求8所述的生产模拟测试系统,其特征在于,所述数据转换模块包括:
协议整合单元,用于在经过整理后的所述数据源中增加预设的协议内容;
编码整合单元,将加入所述协议内容的所述数据源进行预设编码格式处理,得到满足所述主机系统要求的协议报文。
12.如权利要求8所述的生产模拟测试系统,其特征在于,所述综合测试模块包括:
单并发控制单元,用于当对所述主机系统采取所述多并发方式进行发压测试时,通过预设黑名单的方式建立单并发机制,黑名单中的交易在多并发设定下,能够按照单并发,按照时间发生的先后顺序进行在多并发压力下确保单并发处理,真实的模拟生产设定,避免由于交易多并发下资源冲突导致的交易报错。
13.如权利要求8所述的生产模拟测试系统,其特征在于,所述综合测试模块包括:
实时交易关联单元,用于当对所述主机系统采取所述多并发方式进行发压测试时,当待测报文需要关联已测报文时,利用所述关联设定,实时查询出需关联交易在被测系统返回的日志号,待测报文附带该日志号信息发给所述主机系统,所述主机系统据此识别出关联交易,确保交易的正确性。
14.如权利要求8~13任一项所述的生产模拟测试系统,其特征在于,还包括:
进程监控模块,用于在对所述主机系统进行综合发压测试的同时,通过设置单独进程进行全局进行并发进程监控;
进程补充模块,用于对比设置并发要求,当监控到存在并发进程异常时,对异常终止的并发进程进行补充。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610258502.3A CN105825428A (zh) | 2016-04-22 | 2016-04-22 | 一种面向商业银行的生产模拟测试方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610258502.3A CN105825428A (zh) | 2016-04-22 | 2016-04-22 | 一种面向商业银行的生产模拟测试方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105825428A true CN105825428A (zh) | 2016-08-03 |
Family
ID=56527196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610258502.3A Pending CN105825428A (zh) | 2016-04-22 | 2016-04-22 | 一种面向商业银行的生产模拟测试方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105825428A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528825A (zh) * | 2016-11-21 | 2017-03-22 | 中国农业银行股份有限公司 | 一种银行系统压力测试关联交易的发压方法及系统 |
CN106649104A (zh) * | 2016-12-02 | 2017-05-10 | 中国工商银行股份有限公司 | 一种基于主机系统交易重放的测试系统及方法 |
CN108763474A (zh) * | 2018-05-29 | 2018-11-06 | 中国建设银行股份有限公司 | 获取交易相关性及执行回归测试的方法、装置及存储介质 |
CN109165153A (zh) * | 2018-09-06 | 2019-01-08 | 华泰证券股份有限公司 | 一种高仿真证券业交易类系统的性能测试方法 |
CN110580225A (zh) * | 2019-09-20 | 2019-12-17 | 中国银行股份有限公司 | 业务系统的模拟方法及装置 |
CN110908906A (zh) * | 2019-11-18 | 2020-03-24 | 中国民航信息网络股份有限公司 | 一种回归测试方法及系统 |
WO2020140369A1 (zh) * | 2019-01-04 | 2020-07-09 | 平安科技(深圳)有限公司 | 数据恢复控制方法、服务器及存储介质 |
CN111639035A (zh) * | 2020-06-04 | 2020-09-08 | 中国工商银行股份有限公司 | 测试方法、测试装置、测试系统及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1648874A (zh) * | 2005-03-18 | 2005-08-03 | 中国工商银行 | 一种银行主机运行压力测试系统 |
-
2016
- 2016-04-22 CN CN201610258502.3A patent/CN105825428A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1648874A (zh) * | 2005-03-18 | 2005-08-03 | 中国工商银行 | 一种银行主机运行压力测试系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528825A (zh) * | 2016-11-21 | 2017-03-22 | 中国农业银行股份有限公司 | 一种银行系统压力测试关联交易的发压方法及系统 |
CN106528825B (zh) * | 2016-11-21 | 2019-06-18 | 中国农业银行股份有限公司 | 一种银行系统压力测试关联交易的发压方法及系统 |
CN106649104A (zh) * | 2016-12-02 | 2017-05-10 | 中国工商银行股份有限公司 | 一种基于主机系统交易重放的测试系统及方法 |
CN108763474A (zh) * | 2018-05-29 | 2018-11-06 | 中国建设银行股份有限公司 | 获取交易相关性及执行回归测试的方法、装置及存储介质 |
CN108763474B (zh) * | 2018-05-29 | 2021-10-22 | 中国建设银行股份有限公司 | 获取交易相关性及执行回归测试的方法、装置及存储介质 |
CN109165153A (zh) * | 2018-09-06 | 2019-01-08 | 华泰证券股份有限公司 | 一种高仿真证券业交易类系统的性能测试方法 |
CN109165153B (zh) * | 2018-09-06 | 2022-04-26 | 华泰证券股份有限公司 | 一种高仿真证券业交易类系统的性能测试方法 |
WO2020140369A1 (zh) * | 2019-01-04 | 2020-07-09 | 平安科技(深圳)有限公司 | 数据恢复控制方法、服务器及存储介质 |
CN110580225A (zh) * | 2019-09-20 | 2019-12-17 | 中国银行股份有限公司 | 业务系统的模拟方法及装置 |
CN110908906A (zh) * | 2019-11-18 | 2020-03-24 | 中国民航信息网络股份有限公司 | 一种回归测试方法及系统 |
CN111639035A (zh) * | 2020-06-04 | 2020-09-08 | 中国工商银行股份有限公司 | 测试方法、测试装置、测试系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105825428A (zh) | 一种面向商业银行的生产模拟测试方法和系统 | |
WO2022001403A1 (zh) | 一种核级安全显示装置及其组态-解析系统 | |
CN107168940B (zh) | 一种报表生成系统及方法 | |
CN103235881B (zh) | 一种基于最小割集的核反应堆故障监测系统 | |
CN105426300B (zh) | 一种电力系统cim/e模型的标准符合性测试系统和方法 | |
CN103885439A (zh) | 铁路信号计算机联锁系统的自动化测试系统 | |
CN101262682A (zh) | 一种对基站设备进行监控的批量配置管理方法 | |
CN112270550A (zh) | 一种基于区块链的新能源电力溯源方法及系统 | |
CN110244936B (zh) | 用于支持visio流程图自动导入dcs算法组态软件的方法和装置 | |
CN110112831A (zh) | 一种变电站监控信息自动化验收装置及其验收方法 | |
EP2239640A2 (en) | A method and system for using membrane calculus to model dynamic coordination logics for automation systems | |
CN101458973A (zh) | 一种核电机组安全监控系统 | |
CN102306200A (zh) | 增量数据操作语句的并发应用装置和方法 | |
CN107148615A (zh) | 计算机可执行的模型逆向工程方法及装置 | |
CN102722368B (zh) | 一种基于文档树和消息泵的插件式软件设计方法 | |
CN113157336A (zh) | 一种基于c#语言的抓具配置系统、方法、装置和存储介质 | |
CN110611312B (zh) | 一种变电站间隔层全景数据在线模拟系统及方法 | |
CN108287897A (zh) | 一种可视化的分布式数据修复工具及其方法 | |
CN103400050A (zh) | 一种多人协同的核反应堆风险确定方法及系统 | |
CN109614079A (zh) | 一种面向航电领域的编码规则检查系统 | |
CN202472351U (zh) | 轮胎厂硫化机集中监控装置 | |
US7181303B2 (en) | Building blocks for describing process flows | |
CN102393820A (zh) | 一种楼宇监控系统控制逻辑的实现方法 | |
CN103017815A (zh) | 一种可视化的通用测试系统及测试方法 | |
CN112395343B (zh) | 一种基于dsg的字段变更数据采集抽取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160803 |