一种前端系统报文测试方法及模拟挡板系统的制作方法

文档序号:10660675阅读:990来源:国知局
一种前端系统报文测试方法及模拟挡板系统的制作方法
【专利摘要】本发明提供了一种前端系统报文测试方法及模拟挡板系统,该前端系统报文测试方法包括:获取待测前端系统发出的请求报文;根据XML配置文件中预设的报文长度、编码格式、报文格式定义解析所述请求报文,获取交易码;根据报文格式定义中的返回报文头格式定义文件和交易码从本地存储的模拟返回数据文件夹中查询与交易码对应的模拟返回数据文件;根据所述交易码、所述模拟返回数据文件及所述返回报文头格式定义文件生成模拟返回报文;将所述模拟返回报文发送给所述待测前端系统。利用本发明,可以模拟与网银系统直连的MCIS\CSPA\IST等产品系统,接收网银系统发出的报文,模拟MCIS\CSPA\IST等系统定义好的接口返回报文数据,使网银的功能交易顺利进行,不会受到测试环境的制约。
【专利说明】
一种前端系统报文测试方法及模拟挡板系统
技术领域
[0001] 本发明涉及前端测试技术,尤其涉及一种前端系统报文测试方法及模拟挡板系 统。
【背景技术】
[0002] 网上银行作为替代柜台的渠道产品系统,目前与54个产品系统有联机交易通讯, 在每个批次的开发中,尤其是内部测试阶段和组装测试阶段,同搭建系统环境相对复杂,要 耗费大量的人力物力,同时满足批次功能涉及的后台产品开发环境是不现实的,也是不可 能实现的,尤其是海外产品系统,环境更是难以协调,时间也无法保证,无法保证开发工程 活动按计划进行。

【发明内容】

[0003] 为解决上述技术问题,本发明提供了一种前端系统报文测试方法及模拟挡板系 统。
[0004] 本发明一方面提供了一种前端系统报文测试方法,所述前端系统报文测试方法包 括:
[0005] 获取待测前端系统发出的请求报文;
[0006] 根据XML配置文件中预设的报文长度、编码格式、报文格式定义解析所述请求报 文,获取交易码;
[0007] 根据所述报文格式定义中的返回报文头格式定义文件和所述交易码从本地存储 的模拟返回数据文件夹中查询与所述交易码对应的模拟返回数据文件;
[0008] 根据所述交易码、所述模拟返回数据文件及所述返回报文头格式定义文件生成模 拟返回报文;
[0009] 将所述模拟返回报文发送给所述待测前端系统。
[0010] 在一实施例中,根据XML配置文件中预设的报文长度、编码格式、报文格式定义解 析所述请求报文,获取交易码,包括:
[0011] 根据所述XML配置文件中的报文长度、编码格式及报文格式定义解析所述请求报 文,得到所述请求报文的报文头格式定义文件及其路径;
[0012] 根据所述报文头格式定义文件及其路径读取所述请求报文的报文头,获取交易 码。
[0013] 在一实施例中,根据所述报文格式定义中的返回报文头格式定义文件和所述交易 码从本地存储的模拟返回数据文件夹中查询与所述交易码对应的模拟返回数据文件,包 括:
[0014] 根据所述返回报文头格式定义文件及所述交易码从所述报文格式定义中获取返 回报文体格式定义文件;
[0015] 根据所述返回报文体格式定义文件及所述交易码,从所述本地存储的模拟返回数 据文件夹中查询与所述交易码对应的模拟返回数据文件。
[0016] 在一实施例中,所述前端系统报文测试方法还包括:
[0017] 判断所述XML配置文件中与所述交易码对应的返回码是否与设定码匹配;如果是, 根据所述报文格式定义中的返回报文头格式定义文件和所述交易码从本地存储的模拟返 回数据文件夹中查询与所述交易码对应的模拟返回数据文件。
[0018] 在一实施例中,所述前端系统报文测试方法还包括:
[0019]查询所述XML配置文件中预设的MAP集合中是否存在与所述交易码对应的IP地址 及端口号;
[0020] 如果存在,根据所述IP地址及端口号,将所述请求报文转发给相应的后台系统进 行处理。
[0021] 在一实施例中,当所述返回码与设定码不匹配时,所述前端系统报文测试方法还 包括:向所述待测前端系统返回失败报文。
[0022] 在一实施例中,所述前端系统报文测试方法还包括:
[0023]根据所述报文头格式定义文件及所述交易码获取所述请求报文的报文体格式定 义文件;
[0024]根据所述报文体格式定义文件对所述请求报文的报文体进行解析,获取交易数 据;
[0025] 判断所述交易数据是否满足所述XML配置文件中的预设条件;
[0026] 当所述交易数据不满足所述XML配置文件中的预设条件时,向所述待测前端系统 返回失败报文;
[0027] 当所述交易数据满足所述XML配置文件中的预设条件时,将所述交易数据存储在 所述XML配置文件中的MAP集合中,以供查询。
[0028] 在一实施例中,在获取待测前端系统发出的请求报文之后,对所述请求报文创建 线程。
[0029] 在一实施例中,在获取所述请求报文的交易码之后,所述前端系统报文测试方法 还包括:为所述交易码设置睡眠时间,以延时返回所述模拟返回报文。
[0030] 本发明另一方面还提供了一种模拟挡板系统,所述模拟挡板系统包括:
[0031]报文获取单元,用于获取待测前端系统发出的请求报文;
[0032]交易码获取单元,用于根据XML配置文件中预设的报文长度、编码格式、报文格式 定义解析所述请求报文,获取交易码;
[0033] 文件获取单元,用于根据所述报文格式定义中的返回报文头格式定义文件和所述 交易码从本地存储的模拟返回数据文件夹中查询与所述交易码对应的模拟返回数据文件;
[0034] 报文生成单元,用于根据所述交易码、所述模拟返回数据文件及所述返回报文头 格式定义文件生成模拟返回报文;
[0035] 报文发送单元,用于将所述模拟返回报文发送给所述待测前端系统。
[0036] 在一实施例中,所述交易码获取单元包括:
[0037]报文解析模块,用于根据所述XML配置文件中的报文长度、编码格式及报文格式定 义解析所述请求报文,得到所述请求报文的报文头格式定义文件及其路径;
[0038]交易码解析模块,根据所述报文头格式定义文件及其路径读取所述请求报文的报 文头,获取交易码。
[0039] 在一实施例中,所述文件获取单元包括:
[0040] 格式文件获取模块,用于根据所述返回报文头格式定义文件及所述交易码从所述 报文格式定义中获取返回报文体格式定义文件;
[0041] 数据文件获取模块,用于根据所述返回报文体格式定义文件及所述交易码,从所 述本地存储的模拟返回数据文件夹中查询与所述交易码对应的模拟返回数据文件。
[0042]在一实施例中,所述模拟挡板系统还包括:返回码验证单元,用于判断所述XML配 置文件中与所述交易码对应的返回码是否与设定码匹配;如果是,根据所述报文格式定义 中的返回报文头格式定义文件和所述交易码从本地存储的模拟返回数据文件夹中查询与 所述交易码对应的模拟返回数据文件。
[0043]在一实施例中,所述模拟挡板系统还包括:路由转发单元,用于查询所述XML配置 文件中预设的MAP集合中是否存在与所述交易码对应的IP地址及端口号;如果存在,根据所 述IP地址及端口号,将所述请求报文转发给相应的后台系统进行处理。
[0044] 在一实施例中,所述模拟挡板系统还包括:失败报文返回单元,当所述返回码与设 定码不匹配时,用于向所述待测前端系统返回失败报文。
[0045] 在一实施例中,所述模拟挡板系统还包括:
[0046] 格式文件获取单元,用于根据所述报文头格式定义文件及所述交易码获取所述请 求报文的报文体格式定义文件;
[0047] 交易数据获取单元,用于根据所述报文体格式定义文件对所述请求报文的报文体 进行解析,获取交易数据;
[0048] 条件判断单元,用于判断所述交易数据是否满足所述XML配置文件中的预设条件;
[0049] 当所述交易数据不满足所述XML配置文件中的预设条件时,所述失败报文返回单 元向所述待测前端系统返回失败报文;当所述交易数据满足所述XML配置文件中的预设条 件时,将所述交易数据存储在所述XML配置文件中的MAP集合中,以供查询。
[0050] 在一实施例中,所述模拟挡板系统还包括:线程创建单元,用于在获取待测前端系 统发出的请求报文时,对所述请求报文创建线程。
[0051] 在一实施例中,所述模拟挡板系统还包括:睡眠时间设置单元,用于在获取所述请 求报文的交易码之后,为所述交易码设置睡眠时间,以延时返回所述模拟返回报文。
[0052]所有优点:利用本发明,可以模拟真实后台系统向待测的前端系统返回模拟报文, 模拟真实的系统,不受到测试环境的制约,并且可以对前端系统进行内部测试、单元测试及 系统集成测试,支持路由转发、延时返回、异常测试等,实现简单、易于理解,能大大减少开 发人员工作量。例如,可以模拟与网银系统直连的MCIS\CSPA\IST等产品系统,接收网银系 统发出的报文,模拟MCIS\CSPA\IST等系统定义好的接口返回报文数据,使网银的功能交易 顺利进行,不受到测试环境的制约。
【附图说明】
[0053]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0054] 图1为本发明实施例前端系统报文测试方法的流程示意图;
[0055] 图2为本发明实施例前端系统报文测试方法(含返回码判断)的流程示意图;
[0056]图3A及图3B为本发明实施例前端系统报文测试方法(含路由转发判断)的流程示 意图;
[0057]图4A及图4B为本发明实施例前端系统报文测试方法(含条件判断)的结构示意图;
[0058] 图5为本发明实施例模拟挡板系统的结构示意图;
[0059] 图6为本发明实施例前端系统报文测试方法的流程示意图。
【具体实施方式】
[0060] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0061] 图1为本发明实施例前端系统报文测试方法的流程示意图。如图1所示,该前端系 统报文测试方法主要包含以下步骤:
[0062] 步骤S1、获取待测前端系统发出的请求报文。
[0063]步骤S2、根据XML配置文件中预设的报文长度、编码格式、报文格式定义解析所述 请求报文,获取交易码。
[0064] 通常地,为了对前端系统发来的报文进行解析,需在XML配置文件中预先设置报文 长度、编码格式、报文格式定义等参数,如此,以便于在接收到待测前端系统发来的请求报 文时直接对报文进行解析。其中,上述的报文格式定义包括请求报文的报文头格式定义文 件及报文体格式定义文件、返回报文的报文头格式定义文件及报文体格式定义文件。
[0065] 步骤S3、根据上述报文格式定义中的返回报文头格式定义文件和上述交易码从本 地存储的模拟返回数据文件夹中查询与所述交易码对应的模拟返回数据文件。
[0066]步骤S4、根据上述交易码、模拟返回数据文件及返回报文头格式定义文件生成模 拟返回报文。
[0067]步骤S5、将步骤S4生成的模拟返回报文发送给上述待测前端系统。当上述待测前 端系统接收到模拟返回报文后,解析得到的数据与真实后台产品相同,但是没有账务处理 过程。
[0068]利用本发明的前端系统报文测试方法,可以模拟与网银系统直连的MCIS\CSPA\ I ST等产品系统,接收网银系统发出的报文,模拟MCI S\CSPA\I ST等系统定义好的接口返回 报文数据,使网银的功能交易顺利进行,不会受到测试环境的制约。
[0069] 本发明给出了一种获取交易码的实施方式:首先,根据上述XML配置文件中的报文 长度、编码格式及报文格式定义解析待测前端系统发来的请求报文,得到该请求报文的报 文头格式定义文件及其路径;其次,根据上述报文头格式定义文件及其路径读取上述请求 报文的报文头,即得报文头中的交易码。
[0070] 上述实施方式仅用于解释说明步骤S2,并非用于对本发明的限制。
[0071] 在一实施例中,可以按照以下方式进行步骤S3,查询得到与步骤是S2得到的交易 码对应的模拟返回数据文件:首先,根据上述的返回报文头格式定义文件及交易码从上述 预设的报文格式定义中获取返回报文体格式定义文件;然后,根据该返回报文体格式定义 文件及上述交易码,从本地存储的模拟返回数据文件夹中查询与上述交易码对应的模拟返 回数据文件。
[0072]通常地,需要预先将不同的交易码对应的模拟返回数据文件在本地存储,这样可 以在解析出请求报文的交易码之后,通过查询本地内存,就可以查询到某一交易码所对应 的模拟返回数据文件。
[0073]在一实施例中,上述的前端系统报文测试方法还包括一步骤S6,如图2所示,在获 取交易码之后,判断上述XML配置文件中与该交易码对应的返回码是否与设定码匹配,如果 匹配,则进行步骤S3。在进行上述判断之前,需在XML配置文件中预先对各交易码设定一个 返回码,并且预先设定一设定码,当某一交易码对应的返回码与该设定码匹配时,再去查找 该交易码对应的模拟返回数据文件。当上述交易码对应的返回码与设定码不匹配时,则不 进行步骤S3,而是直接向待测前端系统返回一失败报文(步骤S7)。
[0074]利用上述步骤S6步骤S7,可以实现向待测前端系统返回模拟返回报文或者失败报 文,达到真实后台系统返回的情况。
[0075] 例如,将上述设定码预设为0000,那么,当返回码也为0000时,就继续进行步骤S3, 当返回码为其他(例如1111)时,就返回失败报文,可以按照下述方式定义失败报文:〈 returncode>l111</returncode> 〇
[0076] -般地,本发明提供的前端系统报文测试方法还包括一步骤S8,分别如图3A及图 3B所示,在获取请求报文中包含的交易码后,查询XML配置文件中预设的MAP集合中是否存 在与该交易码对应的IP地址及端口号。为进行这一步骤,需要预先在XML配置文件中的MAP 集合中将某些交易码与某些后台系统的IP地址及端口号--对应起来,如此,在得到上述 交易码后,查询XML配置文件中的MAP集合中是否存在与该交易码对应的IP地址及端口号, 如果有,则将上述请求报文转发给其他后台系统进行处理(见步骤S9)。否则,进行步骤S3 (见图3A)或者步骤S6(见图3B)。
[0077]例如,如果设置了某个交易是转发给其他后台系统的,就在XML配置文件的MAP集 合中加入这个交易码以及相应后台系统对应的IP地址及端口号,在解析出请求报文的交易 码字后,然后判断这个交易码是否在MAP中已经定义,如果已经定义,就读取相应产品系统 IP地址、端口号,把收到的请求报文转发给相应后台系统,并等待相应后台系统的返回,收 到返回数据后,再发送给发出请求报文的前端系统。因此,利用本发明,可以实现路由转发 的功能。
[0078] 在一实施例中,本发明提供的前端系统报文测试方法中还包括步骤S10-步骤S12, 如图4A所示,以确定是否返回失败报文:
[0079] 步骤S10、根据上述报文头格式定义文件及上述交易码获取上述请求报文的报文 体格式定义文件。
[0080] 步骤S11、根据上述报文体格式定义文件对上述请求报文的报文体进行解析,获取 交易数据。
[0081] 步骤S12、判断上述交易数据是否满足XML配置文件中的预设条件。
[0082] 当上述交易数据不满足XML配置文件中的预设条件时,向上述待测前端系统返回 失败报文(步骤S7);当上述交易数据满足所述XML配置文件中的预设条件时,进入步骤S3, 并将上述交易数据存储在所述XML配置文件中的MAP集合中,以供查询。
[0083]如图4B所示,还可以利用步骤S10-步骤S12在步骤S6结果为"是"之后进行再次判 断,即,当若交易码对应的返回码与设定码匹配时,解析出交易数据,再次进行条件判断,以 支持反回成功报文(即模拟返回报文)或者失败报文。
[0084]在进行上述步骤S10-步骤S12时,需要在XML配置文件中预先设定一条件字段,该 条件例如可以设为"当账号尾数能被2除尽",那么,当交易数据中的账号尾数为偶数时,则 将该交易数据存储在XML配置文件中的MAP集合中以供查询;当交易数据中的账号尾数为奇 数时,则跳转到步骤S7,向上述前端系统返回失败报文,以模拟真实后台系统返回报文的情 况。
[0085] 在上述各实施例中,在步骤S1中获取待测前端系统发出的请求报文之后,还需要 为所获取的请求报文建立线程,以支持多任务并发处理。
[0086] 进一步地,为了更真实地模拟后台系统,在为待测前端系统发来的请求报文建立 线程之后,还可以为该线程建立睡眠时间,即,为接收待测前端系统的请求报文的每一个处 理类均设置睡眠时间,以实现延迟返回的功能。其中,上述的睡眠时间还可以与各根据不同 的交易码进行不同的设置,如果某个交易码未设置睡眠时间,可以对该交易码设置一个默 认的睡眠时间,以更真实地模拟相应的后台系统。
[0087] 利用本发明提供的前端系统报文测试方法,可以模拟真实后台系统向待测的前端 系统返回模拟报文,模拟真实的系统,使测试顺利进行,不受测试环境的制约。
[0088] 基于与图1-图4B所示的前端系统报文测试方法相同的发明构思,本申请实施例还 提供了一种模拟挡板系统,如下面实施例所述。由于该模拟挡板系统解决问题的原理与前 端系统报文测试方法相似,因此该模拟挡板系统的实施可以参见前端系统报文测试方法的 实施,重复之处不再赘述。
[0089] 图5为本发明实施例模拟挡板系统的结构示意图。如图5所示,该模拟挡板系统主 要包括:报文获取单元1、交易码获取单元2、文件获取单元3、报文生成单元4及报文发送单 兀5 〇
[0090] 其中,报文获取单元1用于获取待测前端系统发出的请求报文。交易码获取单元2 用于根据XML配置文件中预设的报文长度、编码格式、报文格式定义解析上述请求报文,获 取交易码。文件获取单元3则用于根据上述报文格式定义中的返回报文头格式定义文件和 上述交易码从本地存储的模拟返回数据文件夹中查询与该交易码对应的模拟返回数据文 件。报文生成单元4用于根据上述交易码、模拟返回数据文件及返回报文头格式定义文件生 成模拟返回报文,由报文发送单元5将上述模拟返回报文发送给上述待测前端系统。
[0091] 模拟挡板系统是一整套独立运行的JAVA程序的组合,是一个完整的软件系统,不 针对具体的测试案例,不同的测试案例可以通过返回相同的数据或者不同的数据来支持, 可以应用在内部测试、系统集成测试和压力性能测试等任何测试阶段。并且,本发明支持路 由转发、延时返回、异常测试等,实现简单、易于理解,能大大减少开发人员工作量。
[0092] 在一实施例中,交易码获取单元2还包括报文解析模块及交易码解析模块。其中, 报文解析模块用于根据上述XML配置文件中的报文长度、编码格式及报文格式定义解析报 文获取单元1获取的请求报文,得到请求报文的报文头格式定义文件及其路径。交易码解析 模块则根据上述报文头格式定义文件及其路径读取请求报文的报文头,获取交易码。
[0093]通常地,文件获取单元3包括:格式文件获取模块及数据文件获取模块。其中,格式 文件获取模块用于根据上述的返回报文头格式定义文件及交易码从上述报文格式定义中 获取返回报文体格式定义文件。数据文件获取模块则根据上述返回报文体格式定义文件及 交易码,从本地存储的模拟返回数据文件夹中查询与上述交易码对应的模拟返回数据文 件。
[0094]在一实施例中,上述的模拟挡板系统还包括一返回码验证单元6及失败报文返回 单元8,返回码验证单元6用于判断XML配置文件中与上述交易码对应的返回码是否与设定 码匹配。如果上述交易码对应的返回码与设定码匹配,则根据上述报文格式定义中的返回 报文头格式定义文件和该交易码从本地存储的模拟返回数据文件夹中查询与该交易码对 应的模拟返回数据文件。否则,由失败报文返回单元8向上述待测前端系统返回一失败报 文。
[0095] 本发明提供的模拟挡板系统还包括一路由转发单元7,该单元用于查询模拟XML配 置文件中预设的MAP集合中是否存在与上述交易码对应的IP地址及端口号。如果存在,则路 由转发单元7则根据该交易码对应的IP地址及端口号,将上述请求报文转发给相应的后台 系统进行处理,实现路由转发功能。
[0096] 在一实施例中,本发明实施例提供的模拟挡板系统还包括一格式文件获取单元9、 交易数据获取单元10及条件判断单元11。其中,格式文件获取单元9用于根据上述报文头格 式定义文件及交易码获取上述请求报文的报文体格式定义文件。交易数据获取单元10则用 于根据上述报文体格式定义文件对上述请求报文的报文体进行解析,获取交易数据。条件 判断单元11用于判断上述交易数据是否满足XML配置文件中的预设条件。当上述交易数据 不满足XML配置文件中的预设条件时,则由失败报文返回单元8向上述待测前端系统返回失 败报文。当上述交易数据满足XML配置文件中的预设条件时,则将上述交易数据存储在XML 配置文件中的MAP集合中,以供查询。
[0097]为了支持多任务并发处理,本发明实施例模拟挡板系统还包括一线程创建单元 12, 在报文获取单元1获取待测前端系统发来的请求报文时,为该请求报文创建一个线程。
[0098] 通常地,为了更真实地模拟后台系统,上述挡板系统还包括一睡眠时间设置单元 13, 在交易码获取单元12解析出请求报文中的交易码后,为该交易码设置一个睡眠时间,来 延时返回模拟返回报文。
[0099] 利用本发明提供的模拟挡板系统,可以对前端系统进行内部测试、单元测试及系 统集成测试,支持路由转发、延时返回、异常测试等,实现简单、易于理解,能大大减少开发 人员工作量。
[0100] 为了更好地理解本发明的前端系统报文测试方法及模拟挡板系统,下面结合具体 的例子进行说明。
[0101]例如前端系统为网银系统时,利用本发明构建了对网银系统发出的请求报文进行 测试的模拟挡板系统,该系统为独立的JAVA应用,主要功能为:模拟与B0CNET(中国银行网 上银行)直连的MCIS(多渠道接入系统/多渠道整合平台)\CSPA(分行中间业务平台)\IST (信息交换系统)等产品系统,接收网银系统发出的报文,模拟MCIS\CSPA\IST等系统定义好 的接口返回报文数据,使网银的功能交易顺利进行,不受测试环境的制约。
[0102] 本发明的基本原理是:接收到网银系统发来的请求报文后,使用接口文档定义的 XML配置文件解析请求报文,获取交易码等关键数据,结合XML配置文件,然后找到和交易码 匹配的返回报文格式定义文件,结合返回报文格式定义文件,组装模拟返回报文并返回给 网银系统。当网银系统接收到模拟返回报文后,解析得到的数据与真实后台产品相同,但是 没有账务处理过程。
[0103] 以MCIS-E020060001-BANCS-1045交易为例,首先,按照下述程序对模拟挡板系统 的XML配置文件进行预先设置:

[0106] 其中,XML配置文件中包含模拟返回数据文件(SE020060001. xml)、请求报文头格 式定义文件(CspFormatPacket . xml )、请求报文体格式定义文件 (CspTrsFormatE020060001 · xml)、返回报文头格式定义文件(CspParsePacket · xml、 CspSuccParsePackket ·xml)、返回报文体格式定义文件(CspTrsParseE020060001 ·xml)。
[0107] 利用上述模拟挡板系统可按照图6所示流程对前端系统发来的请求报文进行测 试。在图6中,前端系统用BII服务器表示,挡板服务器(Baffle Server)作为Socket Server,在固定的IP地址和端口号进行监听,在本发明中,IP地址设置为:127.0.0.1,端口 号设置为19998AII服务器作为Tcp Client端,在发出请求报文时,可以根据请求报文头格 式定义文件CspFormatPacket. xml及请求报文体格式定义文件CspTrsFormatE020060001. X ml 生成请求报文:0156800E020060001015620131230161020569008153334988010001432000 0000320600098801001Y0000000000001014800962750000000000010000,其中,E020060001 为MCIS交易码,对应BANCS-1045交易。然后,BII服务器将上述请求报文发送到挡板服务器 (host+port)并等待Baffle服务器返回报文。
[0108] 首先,挡板服务器在19998端口接收到BII服务器上送的请求报文后,把请求报文 派发给线程创建单元(即线程池,baffleThreadPool)处理。
[0109] 线程池接收到请求报文后,为请求报文建立一线程,并把请求报文传递给Handler 处理器进行处理。
[0110] Handl er处理器根据XML配置文件中的报文长度(headLength)、编码格式 (encoding)、报文格式定义(transformerFactory)解析收到的请求报文,得到上述请求报 文的报文头格式定义文件CspTrsFormat. xml及其路径/hostpackets/mcis/。
[0111]其次,Handler处理器根据上述报文头格式定义文件的路径及请求报文头格式定 义文件,读取报文头数据。具体的,从请求报文第8位开始,读取十位by tes字节为交易码,这 里为EXT_TRANC0DE = E020060001,然后根据报文头格式定义文件CspFormatPacket.xml中 的关键字〈include keyName = "EXT_TRANCODE">〈/include>和parsePrefix = 〃 CspTrsFormat"获取报文体格式定义CspTrsFormatE020060001. xml,解析报文体数据,获取 交易数据。
[0112] Handler处理器再根据报文体格式定义CspTrsFormatE020060001 · xml,把解析好 的交易数据放入MAP集合中。
[0113] 可选地,交易解析器(mcisIdResolver)可对存放在MAP集合中的交易数据进行下 述处理:交易解析器和交易处理类(111(^81^&118;1;'〇1'11^〇1:;[011)读取乂11^配置文件中的交易码定 义和MAP集合中的交易数据,设置睡眠时间,是否支持异常测试等处理,给NEW_TRANC0DE赋 值E020060001。
[0115] 然后,交易解析器读取defaultFormat的值CspParsePacket,以获取返回报文头格 式定义文件(CspSuccParsePacket .xml),然后根据返回报文头格式定义文件中的关键字〈 include keyName = "NEW_TRANCODE"X/include>和formatPrefix = "CspTrsParse"读取返 回报文体格式定义文件(CspTrsParseE020060001. xml),准备组装返模拟回报文。
[0116] 交易解析器根据返回报文体格式定义文件(CspTrsParseE020060001 .xml)和交易 码(E020060001),到本地文件夹〈param name = "simPrefix">/hostpackets/sims/s〈/ param>中寻找对应的模拟返回数据文件sE020060001. xml。
[0117] 最后,交易解析器组装模拟返回报文并发送给Handler处理器,Handler处理器根 据交易码(E020060001)及返回报文体格式定义文件(CspTrsParseE020060001.xml),生成 模拟返回报文(0128310E02006000101562013123016102056900815333418370838590000098 80100011470000000320600098801001Y0000000>R00000100300000101480096275L20160419 15300972000000002999313870000000000000200000+00000000099800000+ 000700000000000000000+CNY21091000300000000100000000+0320603206000000000000000 0100000+0000000000000000000000010184009559500200012342),并交由挡板服务器反送 给BII服务器。
[0118] 待BII服务器接收到模拟挡板系统发出的模拟返回报文后,根据报文头定义文件 CspParseFormat·xml和接口定义输出文件CspTrsParseE020060001·xml解析返回报文,交 易完成。
[0119] 在一实施例中,可以在模拟挡板系统的XML配置文件中定义报文长度,以支持多种 报文。例如,可以在XML配置文件中,可以设置定长报文、变长报文、XML报文、8583报文、混合 报文(定长+变长+XML)。
[0120] 对于定长报文的设置,在XML配置文件中大都是以fix开头的,例如,〈fixString name = 〃payerAcct〃length = 〃17〃/>代表17位固定长度的账号报文,模拟挡板系统读取XML 配置文件的定义,如果遇到fixString字段就按照定长报文处理。
[0121] 对于变长报文的设置,在XML配置文件中大都是以var开头的,例如,〈varString 仙1116 = 〃1^¥〃丨7。6 = 〃1^〃>〈八3131:1';[1^>代表用两个十位数表示的变长报文,【0512345】表 示KEY为收到的报文,05代表报文的长度,12345表示KEY的值,模拟挡板系统读取XML配置文 件的定义,如果遇到varString就按照变长报文处理。
[0122] 对于XML报文的设置,在XML配置文件中都是以xmlParser关键字定义的,模拟挡板 系统读取XML配置文件的定义,在遇到xmlParser关键字时,就使用xmlParser类来解析收到 的XML报文,xmlParser定义如下:〈include include = "xmlParser〃>〈/include〉,其中 include关键字表示使用一个类来处理。
[0123] 对于混合报文(定长+变长+XML)的处理设置,模拟挡板系统把收到的请求报文分 为报文头和报文体两部分,报文头和报文体的报文格式可以不同,它们的组合方式可以为: 1)报文头(定长报文)+报文体(变长报文);2)报文头(定长报文)+报文体(XML报文);1)报文 头(变长报文)+报文体(XML报文)。
[0124] 对于is〇8583报文的设置,在XML配置文件中都是以iso8583Fields开头的,如下面 的报文定义,bitMap(位图)定义了这段报文包含8583报文的哪几个域,在iso8583Fields定 义的子集中就定义了每个8583报文域的具体格式。
[0127] 通过配置模拟挡板系统的XML配置文件,可支持对定长报文、变长报文、XML报文、 8583报文、混合报文(定长+变长+XML)的模拟返回。
[0128] 在一实施例中,模拟挡板系统可以通过条件设定(账号的尾数、事件秒数的变化 等)或者返回码(〇〇〇〇、其它)返回成功、错误两种情况,满足内部测试中正常值、异常值测 试。
[0129] 其一,模拟挡板系统可以通过条件设定(账号的尾数、事件秒数的变化等)返回成 功、错误两种情况。模拟挡板系统在处理返回报文时,可以设置两种返回数据文件,即在XML 配置文件中设置一个条件字段,在对请求报文进行解析的过程中会判断这个条件是否为 真,如果为真就返回成功报文(即模拟返回报文),如果为假,就返回失败报文。例如,当上述 条件为账号尾数能除尽2,那么当账号尾数为奇数时就向前端系统返回失败报文,当账号为 偶数时向前端系统返回成功报文。同样,可以判断时间的秒数是奇数还是偶数,来决定返回 成功报文还是返回失败报文,以达到真实模拟后台系统返回报文的情况。
[0130] 其二,模拟挡板系统还可以通过设置交易码的返回码,来达到返回成功报文或者 失败报文的功能。在获取交易码之后,在XML配置文件中读取该交易码对应的返回码,当返 回码为0000时,即与设定码(0000)相同,则返回成功报文;当返回码为其他(例如1111)时, 就返回失败报文,定义如下〈returncode〉1111〈/returncode〉。
[0131] 另外,本发明提供的模拟挡板系统还支持自动化生成模拟数据XML文件。模拟挡板 系统内带自动化生成模拟数据XML文件的程序,开发人员编写完代码后,只要选定接口配置 文件,就可以自动生成模拟数据文件。同时,在组装测试和功能测试中,只要获得后台产品 (例如基金、国债等产品系统)返回的真实数据,就可以将以前生成的模拟数据文件更新为 更真实的模拟数据。
[0132] 为了达到支持自动化生成模拟数据XML文件的目的,开发人员可以选定接口配置 文件,例如CspTrsParseE010020001 .xml,定义如下:
[0135]模拟挡板系统读取接口配置文件的内容,根据不同的报文格式定义生成模拟返回 报文,如果是f ixString格式,就统一定义值为1,如果是f ixNumber格式,也统一定义值为1, 如果为fixDate格式,就根据pattern把当前时间的值赋给它,生成的模拟返回报文如下:

[0137] 并且,本发明提供的模拟挡板系统支持CC版本管理,可以随批次功能更新。模拟挡 板系统作为JAVA项目预设在Clear Case服务器上,每个模拟挡板系统的批次可以下载、更 新,开发人员随时上传最新的项目文件,软件资产随时积累,开发人员之间随心复用,在中 心级别可以资产共享。
[0138] 除了上述的功能外,本发明提供的模拟挡板系统还支持路由转发、延时返回、异常 测试等功能。关于路由转发功能,即在测试过程中,由开发人员配置,部分交易连接模拟挡 板系统,另外一部分交易连接后台系统。关于交易延时返回功能,是指为了模拟后台系统的 真实耗时,可以在模拟挡板系统中对后台延时进行参数设置,设置睡眠时间。另外,模拟挡 板系统还支持一些异常测试,例如交易未明、读数据超时、通讯链路中断等,在真实后台通 讯链路上是很难实现的,但对于模拟挡板系统而言,要实现上述异常测试只需简单配置即 可。
[0139] 例如,模拟挡板系统对路由转发的支持,可以通过以下方式实现。对路由转发的支 持是通过设置XML配置文件中的交易码实现的,如果设置了某个交易是转发给其它产品系 统进行处理的,就在XML配置文件的MAP集合中加入这个交易码,模拟挡板系统读取前端系 统发来的请求报文,解析出交易码字段,然后判断这个交易码是否在MAP集合中已经定义, 如果已经定义,就读取其它产品系统IP地址、端口号,把收到的数据报文转发给其它产品系 统,并等待其它产品系统的返回,收到返回数据后再发送给前端系统。
[0140] 模拟挡板系统对延时返回的支持,可以通过设置线程的holdtime(即睡眠时间)来 实现,模拟挡板系统对接收到的前端系统的请求报文的每一个处理类都设置了睡眠时间 (Thread, sleep (tranHoldTime));对应到每个交易码,如果某个交易码没有设置holdtime, 模拟挡板系统就给这个交易码设置一个默认的holdtime。
[0141] 异常测试支持超时测试、返回数据为空、交易未明测试,模拟挡板系统对异常测试 的支持,可通过以下方式实现:
[0142] 超时异常包含连接超时(connectTimeout)和读数据超时(readTimeout),当模拟 挡板系统的IP地址机端口号都正确,但是模拟挡板系统未启动时,前端系统向模拟挡板系 统发送数据就会产生连接超时。当模拟挡板系统设置的延迟时间大于前端系统的读数据超 时时间,例如前端系统的读数据超时时间为10S,而模拟挡板系统设置的延迟时间设置为 11s,那么当模拟挡板系统正常启动后,前端系统向模拟挡板系统发送数据,超过读数据超 时时间没有收到返回数据,前端系统就会产生读数据超时的异常情况。
[0143] 模拟挡板系统收到前端系统发送的请求数据,如果在配置文件中对应的交易码的 标志位为NULL,表示返回数据为空,这时模拟挡板系统在处理前端系统发送的请求数据时, 就返回空数据包给前端系统。例如:
[0144] 〈map name = 〃transMoreMap〃>
[0145] 〈param name = "E020030001">NULL〈/param>
[0146] 〈/map〉
[0147] 模拟挡板系统收到前端系统发送的请求报文后,如果在XML配置文件中对应的交 易码的标志位为EXCEPTION,表示交易未明测试,这时模拟挡板系统在处理前端系统发送的 请求数据时,就主动抛出EXCEPTION,结果就是前端系统没有收到模拟挡板系统的返回报 文,产生交易未明的异常情况。例如:
[0148] 〈map name = 〃transMoreMap〃>
[0149] 〈param name = "E020030001">EXCEPTI0N〈/param>
[0150] 〈/map〉
[0151 ]在具体实施时,本发明提供的模拟挡板系统还支持压力测试,即,只要将模拟挡板 系统打成tar包,在压力测试服务器上解压后,启动startup. sh启动脚本后,即可支持压力 测试。
[0152]模拟挡板系统适用于Window、Unix、Linux系统上,使用java语言开发各交易类程 序测试。系统具有高扩展性,可自动读取xml文件;系统兼容性强,支持TCP/IP Socket定长 报文、变长报文、IS08583报文、XML报文、混合报文等多种通讯方式,可模拟MCIS、CISS、CSPA 的企业网银联机交易及个人网银联机交易,还可模拟1ST的网上支付B2C联机交易。同时,通 过对模拟挡板系统进行相应的配置,可以返回正确、错误两种情况。目前,模拟挡板系统已 成熟应用于网银内部测试的产品层单体测试与组装测试,大大提高了测试可行性。
[0153] 在单元测试阶段,开发人员从CC服务器(版本服务器)上下载模拟挡板系统这一项 目后,可在该开发人员的机器上进行开发、测试。
[0154] 在组装测试阶段,版本管理员把模拟挡板系统项目打包后部署在组装测试服务器 上后,开发人员可以进行组装测试。
[0155] 如果开发人员将部分交易连接挡板系统,另外一部分交易连接后台系统,那么本 发明还可以实现路由转发功能。
[0156] 现有的挡板模拟器分为粧模块和驱动模块,这两个模块都是所开发软件系统的一 部分,必须与整个系统共同发生作用,而不能独立的使用。而模拟挡板系统是一个独立的运 行系统,它与发送报文的软件系统没有结构关系,模拟挡板系统是为了模拟真实的其他产 品系统而设计开发的,只在通讯层和请求的软件系统发生联系。
[0157] 现有的挡板模拟器是通过JAVA类中的main〇方法实现的,而模拟挡板系统是一整 套独立运行的JAVA程序的组合,是一个完整的软件系统。
[0158] 现有的挡板模拟器中粧模块主要针对特定的测试案例使用,什么时候返回什么值 跟具体的测试案例有关系。而模拟挡板系统不针对具体的测试案例,不同的测试案例可以 通过返回相同的数据或者不同的数据来支持。
[0159] 现有的挡板模拟器中粧模块主要应用于内部测试阶段,无法应用于系统集成测试 和性能测试,而模拟挡板系统可以应用在内部测试、系统集成测试和压力性能测试等任何 测试阶段。
[0160] 现有的挡板模拟器需要改变原来的程序结构,而模拟挡板系统不需要改变原来的 程序结构,因为模拟挡板系统是与发出请求报文的软件系统分开部署的,不产生关系。
[0161] 现有的挡板模拟器需要复杂的修改程序才能完成测试,对开发人员而言工作量繁 重。而模拟挡板系统支持自动化生成模拟数据XML文件,支持路由转发、延时返回、异常测试 等,实现简单、易于理解,能大大减少开发人员工作量。
[0162] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序 产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实 施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产 品的形式。
[0163] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流 程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序 指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产 生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实 现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0164] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特 定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或 多个方框中指定的功能。
[0165] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计 算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或 其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一 个方框或多个方框中指定的功能的步骤。
[0166] 本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例 的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员, 依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内 容不应理解为对本发明的限制。
【主权项】
1. 一种前端系统报文测试方法,其特征在于,所述前端系统报文测试方法包括: 获取待测前端系统发出的请求报文; 根据XML配置文件中预设的报文长度、编码格式、报文格式定义解析所述请求报文,获 取交易码; 根据所述报文格式定义中的返回报文头格式定义文件和所述交易码从本地存储的模 拟返回数据文件夹中查询与所述交易码对应的模拟返回数据文件; 根据所述交易码、所述模拟返回数据文件及所述返回报文头格式定义文件生成模拟返 回报文; 将所述模拟返回报文发送给所述待测前端系统。2. 根据权利要求1所述的前端系统报文测试方法,其特征在于,根据XML配置文件中预 设的报文长度、编码格式、报文格式定义解析所述请求报文,获取交易码,包括: 根据所述XML配置文件中的报文长度、编码格式及报文格式定义解析所述请求报文,得 到所述请求报文的报文头格式定义文件及其路径; 根据所述报文头格式定义文件及其路径读取所述请求报文的报文头,获取交易码。3. 根据权利要求1所述的前端系统报文测试方法,其特征在于,根据所述报文格式定义 中的返回报文头格式定义文件和所述交易码从本地存储的模拟返回数据文件夹中查询与 所述交易码对应的模拟返回数据文件,包括: 根据所述返回报文头格式定义文件及所述交易码从所述报文格式定义中获取返回报 文体格式定义文件; 根据所述返回报文体格式定义文件及所述交易码,从所述本地存储的模拟返回数据文 件夹中查询与所述交易码对应的模拟返回数据文件。4. 根据权利要求1所述的前端系统报文测试方法,其特征在于,所述前端系统报文测试 方法还包括: 判断所述XML配置文件中与所述交易码对应的返回码是否与设定码匹配;如果是,根据 所述报文格式定义中的返回报文头格式定义文件和所述交易码从本地存储的模拟返回数 据文件夹中查询与所述交易码对应的模拟返回数据文件。5. 根据权利要求4所述的前端系统报文测试方法,其特征在于,所述前端系统报文测试 方法还包括: 查询所述XML配置文件中预设的MAP集合中是否存在与所述交易码对应的IP地址及端 口号; 如果存在,根据所述IP地址及端口号,将所述请求报文转发给相应的后台系统进行处 理。6. 根据权利要求4所述的前端系统报文测试方法,其特征在于,当所述返回码与设定码 不匹配时,所述前端系统报文测试方法还包括:向所述待测前端系统返回失败报文。7. 根据权利要求1或4所述的前端系统报文测试方法,其特征在于,所述前端系统报文 测试方法还包括: 根据所述报文头格式定义文件及所述交易码获取所述请求报文的报文体格式定义文 件; 根据所述报文体格式定义文件对所述请求报文的报文体进行解析,获取交易数据; 判断所述交易数据是否满足所述XML配置文件中的预设条件; 当所述交易数据不满足所述XML配置文件中的预设条件时,向所述待测前端系统返回 失败报文; 当所述交易数据满足所述XML配置文件中的预设条件时,将所述交易数据存储在所述 XML配置文件中的MAP集合中,以供查询。8. 根据权利要求1所述的前端系统报文测试方法,其特征在于,在获取待测前端系统发 出的请求报文之后,对所述请求报文创建线程。9. 根据权利要求8所述的前端系统报文测试方法,其特征在于,在获取所述请求报文的 交易码之后,所述前端系统报文测试方法还包括:为所述交易码设置睡眠时间,以延时返回 所述模拟返回报文。10. -种模拟挡板系统,其特征在于,所述模拟挡板系统包括: 报文获取单元,用于获取待测前端系统发出的请求报文; 交易码获取单元,用于根据XML配置文件中预设的报文长度、编码格式、报文格式定义 解析所述请求报文,获取交易码; 文件获取单元,用于根据所述报文格式定义中的返回报文头格式定义文件和所述交易 码从本地存储的模拟返回数据文件夹中查询与所述交易码对应的模拟返回数据文件; 报文生成单元,用于根据所述交易码、所述模拟返回数据文件及所述返回报文头格式 定义文件生成模拟返回报文; 报文发送单元,用于将所述模拟返回报文发送给所述待测前端系统。11. 根据权利要求10所述的模拟挡板系统,其特征在于,所述交易码获取单元包括: 报文解析模块,用于根据所述XML配置文件中的报文长度、编码格式及报文格式定义解 析所述请求报文,得到所述请求报文的报文头格式定义文件及其路径; 交易码解析模块,根据所述报文头格式定义文件及其路径读取所述请求报文的报文 头,获取交易码。12. 根据权利要求10所述的模拟挡板系统,其特征在于,所述文件获取单元包括: 格式文件获取模块,用于根据所述返回报文头格式定义文件及所述交易码从所述报文 格式定义中获取返回报文体格式定义文件; 数据文件获取模块,用于根据所述返回报文体格式定义文件及所述交易码,从所述本 地存储的模拟返回数据文件夹中查询与所述交易码对应的模拟返回数据文件。13. 根据权利要求10所述的模拟挡板系统,其特征在于,所述模拟挡板系统还包括:返 回码验证单元,用于判断所述XML配置文件中与所述交易码对应的返回码是否与设定码匹 配;如果是,根据所述报文格式定义中的返回报文头格式定义文件和所述交易码从本地存 储的模拟返回数据文件夹中查询与所述交易码对应的模拟返回数据文件。14. 根据权利要求13所述的模拟挡板系统,其特征在于,所述模拟挡板系统还包括:路 由转发单元,用于查询所述XML配置文件中预设的MAP集合中是否存在与所述交易码对应的 IP地址及端口号;如果存在,根据所述IP地址及端口号,将所述请求报文转发给相应的后台 系统进行处理。15. 根据权利要求13所述的模拟挡板系统,其特征在于,所述模拟挡板系统还包括:失 败报文返回单元,当所述返回码与设定码不匹配时,用于向所述待测前端系统返回失败报 文。16. 根据权利要求15所述的模拟挡板系统,其特征在于,所述模拟挡板系统还包括: 格式文件获取单元,用于根据所述报文头格式定义文件及所述交易码获取所述请求报 文的报文体格式定义文件; 交易数据获取单元,用于根据所述报文体格式定义文件对所述请求报文的报文体进行 解析,获取交易数据; 条件判断单元,用于判断所述交易数据是否满足所述XML配置文件中的预设条件; 当所述交易数据不满足所述XML配置文件中的预设条件时,所述失败报文返回单元向 所述待测前端系统返回失败报文;当所述交易数据满足所述XML配置文件中的预设条件时, 将所述交易数据存储在所述XML配置文件中的MAP集合中,以供查询。17. 根据权利要求10所述的模拟挡板系统,其特征在于,所述模拟挡板系统还包括:线 程创建单元,用于在获取待测前端系统发出的请求报文时,对所述请求报文创建线程。18. 根据权利要求17所述的模拟挡板系统,其特征在于,所述模拟挡板系统还包括:睡 眠时间设置单元,用于在获取所述请求报文的交易码之后,为所述交易码设置睡眠时间,以 延时返回所述模拟返回报文。
【文档编号】H04L12/26GK106027330SQ201610344352
【公开日】2016年10月12日
【申请日】2016年5月23日
【发明人】王同庆, 崔晓军, 胡鹏
【申请人】中国银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1