银行业务处理的回归测试工具的设计与开发

2018-02-08 06:09詹金珍
价值工程 2017年35期
关键词:案例库

摘要:本文介绍的回归测试工具是以某银行业务处理的需求为基础,提出对应的设计方案,采用基于Struts2架构实现的分层设计MVC模式,实现了视图、控制和模型的分离,提高了设计的规范性,实现了各层之间的松耦合性。基于JavaEE的实现,通过集成客户端和服务端,实现案例导入管理、协议管理、执行管理和结果分析等一套回归测试流程的自动化,测试结果表明,该系统达到了设计要求,可满足实际需求。

Abstract: In this paper, the regression test tool is based on the needs of the business processing of a bank. The corresponding design scheme is put forward. The hierarchical design MVC pattern based on the struts 2 architecture realized the separation of view, control and mode. The standardization of design is improved, and the loose coupling between each layer is realized. Based on the implementation of JavaEE, the automation of a set of regression test processes, such as case import management, protocol management, execution management and result analysis, is implemented through integration of client and server. The test results show that the system meets the design requirements and meets the actual requirements.

关键词:企业服务总线;回归测试;案例库

Key words: ESB;regression testing;banking system

中图分类号:TP311.5 文献标识码:A 文章编号:1006-4311(2017)35-0140-03

0 引言

随着金融业和线上消费的不断发展,各行各业对银行的依赖日渐显著,随着客户的需求变化以及各种各样的金融衍生产品的问世,不可避免的要对己有的接口功能进行改动。但是由于银行系统本身的严谨性,每次针对系统的改动都面临着较大风险,多数银行时常会发生二次缺陷,需要经过紧急版本修补,因此对每次上线的版本进行全量的回归测试成为了银行运维中的重中之重,然而,目前回归测试采用的人工测试的方式,却费时费力成本高,没办法进行大规模重复测试,测试结果也不准确,也无法通过大批量的比较数据结果来发现存在的问题,测试过程无法复用,同时对版本的质量也不能有一个良好的控制,所以有必要设计一款自动化回归测试的工具。

1 相关开发技术

ESB是企业服务总线,是一种实现面向服务架构模式(SOA)的一种技术,是为了解决企业之间多个服务或者功能散落在各个不同的系统中的一个工具集。它通过整合不同的系统之间的接口和服务,形成企业一个完整的业务处理流程的服务,如图1所示。

MVC是一种架构设计模式,该模式主要应用于图形化用户界面(GUI)应用程序。在进行架构设计的时候,将用户界面层和逻辑层以及数据层分开,是一种用于软件表现层架构的模式。

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个Servlet,在MVC设计模式中,Struts2作为控制器来建立模型与视图的数据交互,以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,如图2所示。

本系统的数据库设计采用数据库模型设计工具 Sybase PowerDesigner来进行。

2 需求分析

本文的回归测试的自动化测试工具,主要分为客户端、服务端和案例基线库。服务端用来监听接收到的数据,并返回对应的数据。案例基线库是将所有的案例归集为一个集合,存放至数据库中。客户端主要用来模拟消费方,将案例转化为请求报文,并发送至企业服务总线。客户端支持对案例的批量导入,支持对案例的修改,支持对案例执行结果的查看和导出,主要分为案例管理,执行管理,结果管理和协议管理,系统的功能结构模图如图3所示。

案例管理:是本系统的基础模块,包括案例的导入、修改、查询等功能,需要将单条案例的详细信息体现在页面上,支持批量的案例导入,将批量的案例打包成.zip包后,点击导入,系统即完成插库的操作,支持对单条案例的请求和返回报文的在线编辑保存。

执行管理:是本系统的核心模块,提供对案例的批量执行。输入案例对应的用户名和相关的批次号,点击执行按钮,由系统自动完成对案例的执行,对比和分析,包括案例的ID,执行人,协议类型等信息,并将最后的执行结果进行计算,包括执行的案例数、执行的成功数、成功率等,最终显示于页面。

结果管理:是本系统的结果查询模块,提供对单批次案例的详细执行结果。以批次为粒度的,每个批次的案例,可以查询到对应的测试用户、开始时间、结束时间、案例数、执行数、成功数、失败数、成功率和备注。支持导出操作,所有的测试结果均可以以Excel的格式导出,Excel主要显示测试结果的概况、结果详情以及未覆蓋的测试案例。endprint

協议管理:本模块主要提供对所有案例所需协议信息的管理功能。支持对协议类型和协议地址的在线修改,修改后点击保存,下次执行案例即可生效。

3 系统分析与功能模块设计

自动化回归测试工具系统是一个分模块、以案例基线库为中心,客户端和服务端集成一体,相辅相成的架构。该系统的各个模块与银行的业务系统,企业服务总线共同组成整个自动化测试环境。

3.1 案例管理模块

案例管理模块的核心功能是案例的解析导入,因为某银行的测试案例都是以Excel的形式保存的,所以采用POI对案例进行解析。采用FileUpload提供的API接口对案例文件进行操作,实现对文件读写处理。当File获取到文件路径后,进行实例化,并调用ServletFileUpload的parseRequest方法,解析文件为一个List数组,然后采用Iterator迭代器进行循环写文件。

采用POI解析Excel时,首先根据传入的文件路径,实例化一个File对象的输入流,然后读取文件,创建一个Excel工作表,根据getSheetAt获取到表格,最后调用getRow和getCell方法获取对应的某行某列的信息。

3.2 协议管理模块

协议管理实现了对协议的修改,页面修改协议后,数据库做同步修改。连接数据库,取得表单中的id、type和address参数,更新协议信息表。

3.3 执行管理模块

案例执行模块实现了对客户端和服务端的模拟。当实例化Socket客户端成功后,即可以通过实例化的端口进行通讯,本系统的数据通讯内容为报文,需要从数据库取得报文后,才能进行相关的操作。采用TCP协议来实现,需要有一个发送方法和接收方法,发送方法负责从数据库取得案例报文,进行发送,接收方法负责接收响应信息。

3.4 结果分析模块

结果分析模块主要用来对比分析案例执行结果,分析预期的报文和实际收到的报文的区别,本系统将收到的报文全部存放于数据库,进行对比时,从数据库取得预期报文和实际报文,将报文转为字节数组,循环对比每一个字节数组的值是否相同。

4 系统测试

系统测试是软件项目开发的必要步骤,它能有效检测出软件中存在的错误,并能够及时的进行更正,使我们所开发的项目产品质量更高。

4.1 功能测试

功能测试又称为黑盒测试,能更好的从用户的角度来考查被测试系统的功能性需求。

4.1.1 案例模块测试

以一个批次案例模块为例,进行完整的导入、查询和修改功能测试。单击“选择文件”按钮,选中要导入的文件,单击“导入”按钮,结果如图4所示,导入完成后,页面弹出导入结果,显示导入成功。导入成功后,输入导入的某条记录的服务码,进行查询,可以查询到对应的数据。选中某条案例,单击请求报文,进入案例修改页面,如图5所示,修改报文内容后,单击“保存”按钮。从数据库去查看报文内容是否已经修改成功,结果显示修改成功,则说明案例管理模块的所有功能模块均能正常操作。

4.1.2 协议管理模块测试

协议管理测试修改后,验证数据库是否同步修改,页面是否同步刷新协议信息。在协议页面上直接修改“协议”,如图6所示,完成后单击“保存”按钮,弹出“修改成功提示框”。然后去数据库查看协议信息,协议已经被修改“成功”,表明协议管理模块能正常操作。

4.2 工具测试

结构测试又称为白盒测试,需要深入考查系统程序代码的内部结构和逻辑设计等。JMeter是基于javaTM Swing的桌面应用程序,是为了进行负载测试、测试系统性能而设计的。本系统利用JMeter工具对各个模块进行环境测试、录制测试脚本进行性能测试,结果表明,案例报文数在300以内的访问响应速度很快;在300-500以内的访问响应速度是3秒以内,还是比较理想的。

5 结论

本文的回归测试工具在某银行业务处理系统的回归测试中达到了银行业提高测试效率和节约测试成本的要求,具有实际意义,并证实了本系统的设计方案是可行的。

参考文献:

[1]詹金珍.高校学生水电收费管理系统的设计与开发[J].价值工程,2014,355(33):711-716.

[2]詹金珍.基于公平性的D2D时隙调度算法[J].计算机应用,2017,37(3):225-227.

[3]Liang Zhihong;Lu Jun; Design on Information management System of Gas Station, ICICTA,2012, pp.139-142.endprint

猜你喜欢
案例库
2022年度中国高校科技期刊建设示范案例库优秀科技期刊
本刊被评为2022 年度中国高校科技期刊建设示范案例库百佳科技期刊
心血管外科教学案例库的建设及应用研究
《宁夏大学学报(自然科学版)》入选2021年度中国高校科技期刊建设示范案例库
《宁夏大学学报(自然科学版)》入选2021年度中国高校科技期刊建设示范案例库
国内首个海事司法案例库正式上线
基于实践应用的基坑工程设计案例库建设研究
宁夏大学学报(自然科学版)》入选2021年度中国高校科技期刊建设示范案例库
化工原理课程思政案例库建设初探
MTI朝鲜语同声传译教学案例库建设研究