CN110287120B - 一种单元测试系统及测试方法 - Google Patents

一种单元测试系统及测试方法 Download PDF

Info

Publication number
CN110287120B
CN110287120B CN201910580506.7A CN201910580506A CN110287120B CN 110287120 B CN110287120 B CN 110287120B CN 201910580506 A CN201910580506 A CN 201910580506A CN 110287120 B CN110287120 B CN 110287120B
Authority
CN
China
Prior art keywords
scene
data
name
data corresponding
unit
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.)
Active
Application number
CN201910580506.7A
Other languages
English (en)
Other versions
CN110287120A (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.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
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 WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN201910580506.7A priority Critical patent/CN110287120B/zh
Publication of CN110287120A publication Critical patent/CN110287120A/zh
Priority to PCT/CN2020/097820 priority patent/WO2020259516A1/zh
Application granted granted Critical
Publication of CN110287120B publication Critical patent/CN110287120B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种单元测试系统及测试方法,该系统包括监听器、场景构造层、数据源适配层、单元测试模块、业务数据库以及场景库。场景构造层可以实现对单元测试场景的规范化管理,数据源适配层中的不同数据源格式的数据源适配器可以使得系统能够适配多种数据源格式,并将其转化成统一的数据格式。从而解决现有技术中单测场景无法规范化、无法适配多种数据源格式的问题。单元测试模块根据业务数据库中存储的场景名称对应的场景数据对待测单元进行测试保证了独立、轻量的软件开发工具包对原单测逻辑无侵入。

Description

一种单元测试系统及测试方法
技术领域
本发明涉及单元测试技术领域,尤其涉及一种单元测试系统及测试方法。
背景技术
随着计算机技术的发展,越来越多的技术(如大数据、分布式、区块链(Blockchain)、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,单元测试技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对技术提出的更高的要求。
目前一个典型的单元测试过程可以分为以下步骤:
数据加载、单测场景初始化:该步骤用于从数据源加载业务数据,构造需要的业务场景。
执行待测业务逻辑:实际要被测试的代码逻辑。
断言测试:验证业务逻辑的返回结果是否正确。
事务回滚:恢复到本次单测开始前的数据环境,供下一个单测案例使用。
现有技术单测过程主要存在以下不足:
1、对数据加载的支持不足。数据的来源可能包括Excel文件,csv文件,JPA对象等等,这些不同数据源间的差异都需要开发者在业务代码中做适配,造成的后果不仅是业务逻辑与文件处理逻辑混杂在一块,并且会代码冗余度高,不同开发者所编写的文件处理逻辑往往不一致,进而又降低代码的规范性。
2、单测场景的管理。单测过程缺少对单测场景的规范化管理,单测场景的规范化取决于开发者的自觉性。
发明内容
本发明实施例提供一种单元测试系统及测试方法,用以解决现有技术中单测场景无法规范化、无法适配多种数据源格式的问题。
第一方面,本发明实施例提供一种单元测试系统,包括监听器、场景构造层、数据源适配层、单元测试模块、业务数据库以及场景库;
监听器用于获取场景名称,并将所述场景名称发送至场景构造层;
场景构造层用于根据场景名称从数据源适配层中确定场景名称对应的数据源适配器,并根据场景名称对应的数据源适配器从场景库中读取场景名称对应的场景数据;对场景名称对应的场景数据进行加工处理;将加工处理后的场景名称对应的场景数据发送给业务数据库进行存储;
单元测试模块用于根据业务数据库中存储的场景名称对应的场景数据,对待测单元进行测试。
上述方案,提供了一个规范化的单测场景管理及应用系统。场景构造层可以实现对单元测试场景的规范化管理,数据源适配层中的不同数据源格式的数据源适配器可以使得系统能够适配多种数据源格式,并将其转化成统一的数据格式。从而解决现有技术中单测场景无法规范化、无法适配多种数据源格式的问题。单元测试模块根据业务数据库中存储的场景名称对应的场景数据对待测单元进行测试保证了独立、轻量的软件开发工具包对原单测逻辑无侵入。
可选的,所述场景构造层包括场景构造器、场景解析器和数据加工链路;
所述场景构造器用于将所述监听器发送的所述场景名称发送给所述场景解析器;
所述场景解析器用于根据所述场景名称,从所述数据源适配层中确定所述场景名称对应的数据源适配器,并根据所述场景名称对应的数据源适配器从所述场景库中读取所述场景名称对应的场景数据,将读取到的所述场景名称对应的场景数据发送给所述数据加工链路;
所述数据加工链路用于对所述场景名称对应的场景数据进行加工处理;并将加工处理后的所述场景名称对应的场景数据发送给所述业务数据库进行存储。
上述方案,场景构造层可根据不同的场景名称进行造数使得单测开发者在进行单测过程时操作简便,单测开发者需要关注的仅仅是单测启动-运行-完成这个步骤,至于复杂的场景构造过程和场景回滚过程全部由本发明自动完成以此保证单测开发者可以聚焦于业务逻辑的正确性,无需分心于如何创建所需的场景其中系统提供了一个默认的解析器,同时也支持开发者根据业务需要自定义解析器。提高了系统的灵活性和自适应能力。
可选的,所述监听器还用于在监听到所述单元测试模块对所述待测单元测试完成后,向所述场景构造层发送数据回滚指令。
上述方案,在单测完成后回滚数据库使得系统支持非事务型的回滚操作,从而不影响业务逻辑中的事务。
可选的,所述数据加工链路还包括数据清理节点;
所述场景构造层还用于在接收到所述数据回滚指令后,通过所述数据加工链路中的数据清理节点对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。
上述方案,数据加工链路由数据加工节点和链路管理器组成,系统提供了多个默认的加工节点,也支持开发者添加自定义的节点,同时可以增加新的加工节点,实现自定义的加工逻辑,具有灵活性。
可选的,所述数据清理节点通过逆向数据库操作对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。
上述方案,由于不使用spring的事务注解实现类似的事务功能,清理节点采用逆向操作的方式来恢复数据库状态,使得系统支持非事务型的回滚操作,从而不影响业务逻辑中的事务。
可选的,所述数据加工链路对所述场景名称对应的场景数据进行清理、过滤、填充、转换和保存。
需要说明的是,数据加工链路中的保存节点可以将构造的场景数据保存为sql文件,也可直接将构造的场景数据保存到指定的数据库中。
第二方面,本发明实施例提供一种基于上述第一方面的单元测试系统的测试方法,包括:
获取场景名称;
根据所述场景名称,从所述场景库中读取所述场景名称对应的场景数据,对所述场景名称对应的场景数据进行加工处理;
根据加工处理后的所述场景名称对应的场景数据对待测单元进行测试。
上述方案,提供了一个规范化的单测场景管理及应用系统,根据加工处理后的场景名称对应的场景数据对待测单元进行测试能够使得系统适配多种数据源格式并将其转化成统一的数据格式。
可选的,所述根据所述场景名称,从所述场景库中读取所述场景名称对应的场景数据,包括:
根据所述场景名称从所述数据源适配层中确定所述场景名称对应的数据源适配器;
根据所述场景名称对应的数据源适配器从所述场景库中读取所述场景名称对应的场景数据。
上述方案,通过开发者的注解获取需要加载的场景名称,开发者可以聚焦于业务逻辑的正确性,从而不必考虑如何创建所需场景的过程,简化了开发过程提高了开发效率。
可选的,所述对所述场景名称对应的场景数据进行加工处理,包括:
对所述场景名称对应的场景数据进行清理、过滤、填充、转换和保存。
上述方案,针对不同的场景名称选择不同的场景解析器,将不同格式的数据通过数据源适配器统一成同一格式,使得系统可以扩展新的数据源格式并具有很高的灵活性。系统可以自适应的配合多种场景,从而开发者无需花费更多的精力在如何创建所需场景的过程中。
可选的,在所述根据加工处理后的所述场景名称对应的场景数据对待测单元进行测试之后,还包括:
在确定对所述待测单元测试完成时,对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。
上述方案,在单测完成后回滚数据库使得系统支持非事务型的回滚操作,从而不影响业务逻辑中的事务。
可选的所述对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚,包括:
通过逆向数据库操作对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。
上述方案,不同于Spring基于事务的回滚方式,清理节点采用执行逆向操作的方式来恢复数据库状态使得系统支持非事务型回滚操作从而不影响业务逻辑中的事务。
第三方面,本发明实施例提供一种测试装置,包括:
获取单元,获取场景名称;
处理单元,根据所述场景名称,从所述场景库中读取所述场景名称对应的场景数据,对所述场景名称对应的场景数据进行加工处理;根据加工处理后的所述场景名称对应的场景数据对待测单元进行测试。
可选的,所述处理单元具体用于:
根据所述场景名称从所述数据源适配层中确定所述场景名称对应的数据源适配器;
根据所述场景名称对应的数据源适配器从所述场景库中读取所述场景名称对应的场景数据。
可选的,所述处理单元具体用于:
对所述场景名称对应的场景数据进行清理、过滤、填充、转换和保存。
可选的,所述处理单元还具体用于:
在确定对所述待测单元测试完成时,对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。
可选的,所述处理单元还具体用于:
通过逆向数据库操作对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。
所述保存节点可直接将所述场景数据保存到指定的数据库中,也可将所述场景数据保存为sql文件并将其保存到数据库中。
第四方面,本发明实施例提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述第二方面所述的方法。
第五方面,本发明实施例提供一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述第二方面所述的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种单元测试系统的示意图;
图2为本发明实施例中一种单元测试系统的示意图;
图3为本发明实施例中一种单元测试系统的测试方法的流程示意图;
图4为本发明实施例中一种单元测试系统的测试方法的流程示意图;
图5为本发明实施例中一种单元测试的装置的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
图1示出了为本发明实施例提供的一种单元测试系统的示意图,该系统包括监听器100、场景构造层200、数据源适配层300、单元测试模块400、业务数据库500以及场景库600。
监听器100用于获取场景名称,并将场景名称发送至场景构造层200。
场景构造层200用于根据场景名称从数据源适配层300中确定场景名称对应的数据源适配器,并根据场景名称对应的数据源适配器从场景库600中读取场景名称对应的场景数据,对场景名称对应的场景数据进行加工处理,将加工处理后的场景名称对应的场景数据发送给业务数据库进行存储。
单元测试模块400用于根据业务数据库500中存储的场景名称对应的场景数据,对待测单元进行测试。
数据源适配层300用于为场景构造层200提供适配不同数据源格式的数据源适配器。
场景库600用于为场景构造层200提供不同场景名称对应的场景数据。
具体的,场景构造层200可以包括场景构造器、场景解析器和数据加工链路。其中,场景构造器用于将监听器发送的场景名称发送给场景解析器。场景解析器用于根据场景名称,从数据源适配层300中确定场景名称对应的数据源适配器,并根据场景名称对应的数据源适配器从场景库600中读取场景名称对应的场景数据,将读取到的场景名称对应的场景数据发送给数据加工链路。数据加工链路用于对场景名称对应的场景数据进行加工处理,并将加工处理后的场景名称对应的场景数据发送给业务数据库500进行存储。
当单元测试模块400对待测单元测试完成之后,监听器还可以在监听到单元测试模块400对待测单元测试完成后,向场景构造层200发送数据回滚指令。以使场景构造层200对业务数据库500进行回滚操作。具体的,数据加工链路还包括数据清理节点。场景构造层200在接收到数据回滚指令后,可以通过数据加工链路中的数据清理节点对业务数据库500中的场景名称对应的场景数据进行数据回滚。
进一步的,数据加工链路对所述场景名称对应的场景数据进行清理、过滤、填充、转换和保存。
为此,本发明实施例提供的一种单元测试系统,其结构可以如图2所示,其中,图1中所示的监听器100可以位于单测监听层,图1中所示的场景库600可以位于场景库层。
如图2所示,单测监听层包含一个监听器,负责监听业务开发者的单测案例的执行和终止。在检测到单测案例开始执行时,监听器会委托场景构造层构造运行单测所需要的场景数据;检测到单测执行完成后,监听器会再次委托场景构造层将场景数据回滚恢复到单测开始前的状态。监听器的实现是基于Spring框架的监听接口,支持Spring框架的原生监听服务,同时也支持开发者自定义监听服务实现个性化功能。
场景构造层负责接受监听器的委托来构造出开发者需要的场景或者回滚场景数据。场景构造器从监听器接收到构造场景的委托后,将场景名称送给场景解析器,由场景解析器判断要从哪个数据源获取构造场景所需的数据并委托相应的数据源适配器读取数据。框架提供了一个默认的解析器,同时也支持开发者根据业务需要自定义解析器。数据加工链路由一串数据加工节点和一个链路管理器组成,负责对获取到的场景数据执行必要的加工,包括数据的清理、过滤、填充、转换、保存等。同样地,框架提供了多个默认的加工节点,也支持开发者添加自定义的节点。其中,清理节点负责当单测完成后将数据库恢复到单测开始前的状态。与Spring框架这种基于事务的回滚方式不同,清理节点采用执行“逆向操作”的方式来恢复数据库状态。保存节点有两种保存策略,一种是将构造的场景数据保存为sql(Structured Query Language,结构化查询语言)文件,这种策略适用于在本地开发环境造数后,导入集群中的测试环境;另一种策略是直接将构造的场景保存到指定的数据库中,框架采用JFinal框架来实现数据库交互。同时,框架对多种数据库提供了支持,包括H2内存数据库,mysql(关系型数据库管理系统)等。
数据源适配层负责适配各种不同的数据源格式,为场景构造层提供格式一致的数据格式。例如,Excel Adapter(适配器)适合处理当场景库是维护在excel中的场合,BeanAdapter适合处理当场景库维护在开发者的源代码中的场合,CSV Adapter则适合处理当场景库是维护成csv格式文件的场景。如果开发者有特别的需要,如需要处理xml或者json格式的数据源,框架同样允许开发者添加定制化的数据源适配器。
场景库层的作用是对业务开发者的场景库施加一个强约束,要求业务开发者将单测场景数据维护在一个统一的地方,以达到规范化管理的目的。例如,框架默认将单测场景维护在excel文件中,优点在于excel的可视化、可编辑性比较好,非技术开发人员也有能力维护。
基于上述单元测试系统,图3示例性的示出了本发明实施例提供的一种测试方法的流程。该流程可以由上述单元测试系统执行。
如图3所示,该流程具体包括:
步骤301,获取场景名称。
具体的,检测到单测开始执行时,通过开发者的注解获取需要加载的所述场景名称;将获取到的所述场景名称发送给所述场景构造器。
需要说明的是,场景构造器针对不同的场景名称构造不同的场景,比如以贷款核心系统为例,假设业务开发者想测试当借款者有一笔贷款借据逾期时个人中心的各项数据是否正确,此时获取到的场景名称为“单用户单借据逾期”,场景构造器根据此名称选择不同的数据源适配器等来构造合适的场景从而提高了系统的自适应性。
步骤302,根据所述场景名称,从所述场景库中读取所述场景名称对应的场景数据,对所述场景名称对应的场景数据进行加工处理。
具体的,所述数据加工链路对所述场景名称对应的场景数据进行清理、过滤、填充、转换和保存。
具体的,所述数据加工链路分为多个加工节点,对所述场景数据进行清理、过滤、填充、转换、保存等;
需要说明的是,监听器基于spring的监听接口,支持spring的原生监听服务,同时也支持开发者设置的监听服务。场景解析器可以为默认,也支持开发者设置。数据加工链路包括一串数据加工节点和一个链路管理器。数据加工节点可以为默认,也可由开发者设置添加。比如同样以贷款核心系统为例,场景解析器根据检测到场景数据维护在excel中,因此将场景元信息传递给excel数据源适配器,由excel数据源适配器负责从excel文件中加载出“逾期”的场景数据,下一步则将场景数据转发给数据加工链路,由链路对数据做必要的填充之后,将场景数据转换成sql语句并插入业务数据库中。到此完成场景的构建过程。
步骤303,根据加工处理后的所述场景名称对应的场景数据对待测单元进行测试,单测执行完成后回滚数据库。
具体的,监听器还用于在监听到所述单元测试模块对所述待测单元测试完成后,向所述场景构造层发送数据回滚指令;
场景构造层在接收到数据回滚指令后,通过数据加工链路中的数据清理节点对业务数据库中的场景名称对应的场景数据进行数据回滚。
具体的,数据清理节点通过逆向数据库操作对业务数据库中的场景名称对应的场景数据进行数据回滚。
保存节点可直接将场景数据保存到指定的数据库中,也可将场景数据保存为sql文件并将其保存到数据库中。
需要说明的是,数据库可采用JFinal实现交互;数据库包括H2内存数据库、mysql等。
为了更好的解释本发明实施例,下面将在具体的实施场景下描述上述测试的流程,具体如图4所示:
假设业务开发者想测试当借款者有一笔微粒贷借据逾期时,微粒贷个人中心的各项数据是否正确。当单测开发者启动单测时,本发明的单测执行监听器监听到单测启动,首先从单测方法的注解中取出场景名称,例如在本例中场景名称为“单用户单借据逾期”,监听器将场景名称传递给场景构建器后,场景构建器识别该名称,并根据默认配置通知默认的场景解析器解析该场景名称。同样地,场景解析器根检测到场景数据维护在excel中,因此将场景元信息传递给excel数据源适配器,由excel数据源适配器负责从excel文件中加载出“逾期”的场景数据,下一步则将场景数据转发给数据加工链路,由链路对数据做必要的填充之后,将场景数据转换成sql语句并插入业务数据库中。到此完成场景的构建过程。
单测运行完成之后,监听器检测到单测方法退出时,会发出指令通知场景构造器回滚数据。场景构造器则将该任务委托给数据加工链路中的数据清理节点,由清理节点通过执行逆向的sql操作来完成数据库恢复。
上述方案,从单测开发者的角度看,他需要关注的仅仅是单测启动-运行-完成这个步骤,至于复杂的场景构造过程和场景回滚过程全部由本发明自动完成以此保证单测开发者可以聚焦于业务逻辑的正确性,无需分心于如何创建所需的场景及如何回滚单测现场。
基于相同的技术构思,图5示例性的示出了本发明实施例提供一种测试装置,该装置可以执行上述测试流程。
如图5所示,该装置可以包括:
获取单元501,获取场景名称;
处理单元502,用于根据所述场景名称,从所述场景库中读取所述场景名称对应的场景数据,对所述场景名称对应的场景数据进行加工处理;根据加工处理后的所述场景名称对应的场景数据对待测单元进行测试。
可选的,所述处理单元502具体用于:
根据所述场景名称从所述数据源适配层中确定所述场景名称对应的数据源适配器;
根据所述场景名称对应的数据源适配器从所述场景库中读取所述场景名称对应的场景数据。
可选的,所述处理单元502具体用于:
对所述场景名称对应的场景数据进行清理、过滤、填充、转换和保存。
可选的,所述处理单元502还具体用于:
在确定对所述待测单元测试完成时,对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。
可选的,所述处理单元502还具体用于:
通过逆向数据库操作对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。
其中,所述数据库可采用JFinal实现交互;所述数据库包括H2内存数据库、mysql等。
所述保存节点可直接将所述场景数据保存到指定的数据库中,也可将所述场景数据保存为sql文件并将其保存到数据库中。
基于相同的技术构思,本发明实施例提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述测试方法。
基于相同的技术构思,本发明实施例提供一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述测试方法。
最后应说明的是:本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (11)

1.一种单元测试系统,其特征在于,包括监听器、场景构造层、数据源适配层、单元测试模块、业务数据库以及场景库;所述场景构造层包括场景构造器、场景解析器和数据加工链路;
所述监听器用于获取场景名称,并将所述场景名称发送至所述场景构造层;
所述场景构造层中的场景构造器用于将所述监听器发送的所述场景名称发送给所述场景解析器;
所述场景构造层中的场景解析器用于根据所述场景名称,从所述数据源适配层中确定所述场景名称对应的数据源适配器,并根据所述场景名称对应的数据源适配器从所述场景库中读取所述场景名称对应的场景数据,将读取到的所述场景名称对应的场景数据发送给所述数据加工链路;
所述场景构造层中的数据加工链路用于对所述场景名称对应的场景数据进行加工处理;并将加工处理后的所述场景名称对应的场景数据发送给所述业务数据库进行存储;
所述单元测试模块用于根据所述业务数据库中存储的所述场景名称对应的场景数据,对待测单元进行测试。
2.根据权利要求1所述的系统,其特征在于,所述监听器还用于在监听到所述单元测试模块对所述待测单元测试完成后,向所述场景构造层发送数据回滚指令。
3.根据权利要求2所述的系统,其特征在于,所述数据加工链路还包括数据清理节点;
所述场景构造层在接收到所述数据回滚指令后,通过所述数据加工链路中的数据清理节点对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。
4.根据权利要求3所述的系统,其特征在于,所述数据清理节点通过逆向数据库操作对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。
5.根据权利要求1至4任一项所述的系统,其特征在于,所述数据加工链路对所述场景名称对应的场景数据进行清理、过滤、填充、转换和保存。
6.一种基于权利要求1至4任一项所述单元测试系统的测试方法,应用于单元测试系统,所述单元测试系统包括监听器、场景构造层、数据源适配层、单元测试模块、业务数据库以及场景库;所述场景构造层包括场景构造器、场景解析器和数据加工链路,其特征在于,包括:
所述监听器获取场景名称;并将所述场景名称发送至所述场景构造层;
所述场景构造层中的场景构造器将所述场景名称发送给所述场景解析器;
所述场景构造层中的场景解析器根据所述场景名称从所述数据源适配层中确定所述场景名称对应的数据源适配器;并根据所述场景名称对应的数据源适配器从所述场景库中读取所述场景名称对应的场景数据,将读取到的所述场景名称对应的场景数据发送给所述数据加工链路;
所述场景构造层中的数据加工链路对所述场景名称对应的场景数据进行加工处理;并将加工处理后的所述场景名称对应的场景数据发送给所述业务数据库进行存储;
所述单元测试模块根据所述业务数据库中存储的加工处理后的所述场景名称对应的场景数据,对待测单元进行测试。
7.根据权利要求6所述的方法,其特征在于,所述对所述场景名称对应的场景数据进行加工处理,包括:
对所述场景名称对应的场景数据进行清理、过滤、填充、转换和保存。
8.根据权利要求6至7任一项所述的方法,其特征在于,在所述根据加工处理后的所述场景名称对应的场景数据对待测单元进行测试之后,还包括:
在确定对所述待测单元测试完成时,对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。
9.根据权利要求8所述的方法,其特征在于,所述对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚,包括:
通过逆向数据库操作对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。
10.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求6至9任一项所述的方法。
11.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求6至9任一项所述的方法。
CN201910580506.7A 2019-06-28 2019-06-28 一种单元测试系统及测试方法 Active CN110287120B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910580506.7A CN110287120B (zh) 2019-06-28 2019-06-28 一种单元测试系统及测试方法
PCT/CN2020/097820 WO2020259516A1 (zh) 2019-06-28 2020-06-23 一种单元测试系统及测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910580506.7A CN110287120B (zh) 2019-06-28 2019-06-28 一种单元测试系统及测试方法

Publications (2)

Publication Number Publication Date
CN110287120A CN110287120A (zh) 2019-09-27
CN110287120B true CN110287120B (zh) 2023-09-08

Family

ID=68019840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910580506.7A Active CN110287120B (zh) 2019-06-28 2019-06-28 一种单元测试系统及测试方法

Country Status (2)

Country Link
CN (1) CN110287120B (zh)
WO (1) WO2020259516A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287120B (zh) * 2019-06-28 2023-09-08 深圳前海微众银行股份有限公司 一种单元测试系统及测试方法
CN112527856A (zh) * 2020-11-16 2021-03-19 广东电网有限责任公司 用于电网数据的统一数据源管理系统及方法
CN112486838A (zh) * 2020-12-14 2021-03-12 广州品唯软件有限公司 接口测试方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992427A (zh) * 2017-12-26 2018-05-04 顺丰科技有限公司 创建业务测试场景的方法、装置、设备及其存储介质
CN108319547A (zh) * 2017-01-17 2018-07-24 阿里巴巴集团控股有限公司 测试用例生成方法、装置和系统
CN108446223A (zh) * 2018-03-06 2018-08-24 吉旗(成都)科技有限公司 一种基于动态编译的业务场景自动化测试方法
CN108984712A (zh) * 2018-07-06 2018-12-11 深圳前海微众银行股份有限公司 基于业务场景的造数方法、设备及可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7930683B2 (en) * 2006-03-31 2011-04-19 Sap Ag Test automation method for software programs
CN102866944B (zh) * 2012-06-12 2015-04-29 中国联合网络通信集团有限公司 一种压力测试系统及方法
US9460408B2 (en) * 2013-12-23 2016-10-04 International Business Machines Corporation Method and apparatus for generating test scenarios for a set of business rules
US10860616B2 (en) * 2016-06-06 2020-12-08 International Business Machines Corporation Test data management
CN110287120B (zh) * 2019-06-28 2023-09-08 深圳前海微众银行股份有限公司 一种单元测试系统及测试方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319547A (zh) * 2017-01-17 2018-07-24 阿里巴巴集团控股有限公司 测试用例生成方法、装置和系统
CN107992427A (zh) * 2017-12-26 2018-05-04 顺丰科技有限公司 创建业务测试场景的方法、装置、设备及其存储介质
CN108446223A (zh) * 2018-03-06 2018-08-24 吉旗(成都)科技有限公司 一种基于动态编译的业务场景自动化测试方法
CN108984712A (zh) * 2018-07-06 2018-12-11 深圳前海微众银行股份有限公司 基于业务场景的造数方法、设备及可读存储介质

Also Published As

Publication number Publication date
WO2020259516A1 (zh) 2020-12-30
CN110287120A (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
CN110287120B (zh) 一种单元测试系统及测试方法
US9110712B2 (en) Method for encapsulating logical units of work using business objects
CN106294125B (zh) 银行核心系统数据处理方法
CN107092491B (zh) 一种配置加载方法和系统
CN110471754A (zh) 作业调度中的数据展示方法、装置、设备及存储介质
CN110134596A (zh) 测试文档的生成方法及终端设备
CN111784108B (zh) 一种主数据管理平台的建模方法和装置
US8510714B2 (en) Implementing integrated documentation and application testing
CN111858643B (zh) 数据库变量生产方法、系统、计算机设备和存储介质
CN111090591B (zh) 测试方法及装置、电子设备和计算机可读存储介质
CN113535575A (zh) 软硬件产品基础环境的基准测试方法及装置
CN111090638B (zh) 一种数据库迁移中交易功能的对比方法及装置
CN112596806A (zh) 数据湖数据加载脚本生成方法和系统
CN113190463B (zh) 一种代码测试方法,节点及系统
US20190310933A1 (en) Externalized definition and reuse of mocked transactions
CN111680023A (zh) 迁移数据核对方法及装置
CN111857670A (zh) 应用架构的确定方法和装置
CN108763095A (zh) 一种代码测试方法和装置
CN116955342B (zh) 业务数据一致率校验方法和装置
CN116226247A (zh) 一种基于dsg的业务数据采集抽取方法、设备及存储介质
CN113778866A (zh) 银行业务系统的测试方法、装置及设备
CN116719816A (zh) 一种客户信息存储方法、装置、存储介质及电子设备
CN112068882A (zh) 一种基于混合持久化框架的数据处理方法及装置
CN116383052A (zh) 批处理任务的自动化测试方法、装置、设备及存储介质
CN114201285A (zh) 事件异步化处理方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant