CN111767343A - 基于消息队列的测试数据同步方法和装置、设备以及介质 - Google Patents
基于消息队列的测试数据同步方法和装置、设备以及介质 Download PDFInfo
- Publication number
- CN111767343A CN111767343A CN202010578990.2A CN202010578990A CN111767343A CN 111767343 A CN111767343 A CN 111767343A CN 202010578990 A CN202010578990 A CN 202010578990A CN 111767343 A CN111767343 A CN 111767343A
- Authority
- CN
- China
- Prior art keywords
- data
- message
- test
- database
- message queue
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 180
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012795 verification Methods 0.000 claims abstract description 56
- 230000008859 change Effects 0.000 claims abstract description 53
- 230000004044 response Effects 0.000 claims abstract description 8
- 238000012986 modification Methods 0.000 claims description 22
- 230000004048 modification Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 19
- 230000001360 synchronised effect Effects 0.000 claims description 19
- 238000012216 screening Methods 0.000 claims description 14
- 230000009471 action Effects 0.000 claims description 6
- 238000010200 validation analysis Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于消息队列的测试数据同步方法和装置、设备以及介质,该方法包括:响应于验证数据库中的数据变化向消息队列发送数据变化消息;根据各测试数据库的需求拉取该消息队列中对应的数据变化消息,并且,根据该数据变化消息修改对应测试数据库中的数据,以实现测试数据由验证数据库向测试数据库的单向同步,其中,采用验证数据库与测试数据库的分级架构,验证数据库通过消息队列将数据单向同步至测试数据库,解决测试数据独立性、稳定性问题,有效管理和使用测试数据,利于系统测试的高效有序进行。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于消息队列的测试数据同步方法和装置、设备以及介质。
背景技术
银行系统的子系统众多,系统测试时具有测试流程长、涉及数据范围广、数据要求高等特点,在保持业务功能快速开发和存量业务安全性的要求下,系统测试数据需要满足如下要求:一是数据具有稳定性,从银行电算化开始的各种客户数据都需要继承下来,满足不同场景测试要求;二是不同测试组在数据使用过程中,需要相对独立的测试数据。
如图1所示,传统银行测试人员一般通过模拟柜员或者通过测试脚本、手工改数等方式,直接对测试数据库进行操作,为了便于操作或者对数据有特殊要求,就会使用不规范的方式新增、修改、删除数据,测试数据的独立性和稳定性不能得到有效保障,进而引起测试问题。
发明内容
针对现有技术中的问题,本发明提供一种基于消息队列的测试数据同步方法和装置、电子设备以及计算机可读存储介质,能够至少部分地解决现有技术中存在的问题。
为了实现上述目的,本发明采用如下技术方案:
第一方面,提供一种基于消息队列的测试数据同步方法,包括:
响应于验证数据库中的数据变化向消息队列发送数据变化消息;
根据各测试数据库的需求拉取该消息队列中对应的数据变化消息,并且,根据该数据变化消息修改对应测试数据库中的数据,以实现测试数据由验证数据库向测试数据库的单向同步。
进一步地,该消息队列为kafka。
进一步地,该根据各测试数据库的需求拉取该消息队列中对应的数据变化消息,包括:
根据各测试数据库预设的数据同步筛选参数表拉取该消息队列中对应的数据变化消息。
进一步地,在响应于验证数据库中的数据变化向消息队列发送数据变化消息之前,还包括:
获取模拟交易数据;
对该模拟交易数据进行合法性检查;
若检查通过,则根据该模拟交易数据修改该验证数据库中的数据。
进一步地,在根据该模拟交易数据修改该验证数据库中的数据时,保存修改动作以及修改前的数据。
第二方面,提供一种基于消息队列的测试数据同步装置,包括:
消息发送模块,响应于验证数据库中的数据变化向消息队列发送数据变化消息;
消息拉取模块,根据各测试数据库的需求拉取该消息队列中对应的数据变化消息;
数据单向同步模块,根据该数据变化消息修改对应测试数据库中的数据,以实现测试数据由验证数据库向测试数据库的单向同步。
进一步地,该消息队列为kafka。
进一步地,该消息拉取模块包括:
消息拉取单元,根据各测试数据库预设的数据同步筛选参数表拉取该消息队列中对应的数据变化消息。
第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现上述的基于消息队列的测试数据同步方法的步骤。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的基于消息队列的测试数据同步方法的步骤。
本发明提供的基于消息队列的测试数据同步方法和装置、设备以及介质,该方法包括:响应于验证数据库中的数据变化向消息队列发送数据变化消息;根据各测试数据库的需求拉取该消息队列中对应的数据变化消息,并且,根据该数据变化消息修改对应测试数据库中的数据,以实现测试数据由验证数据库向测试数据库的单向同步,其中,采用验证数据库与测试数据库的分级架构,验证数据库通过消息队列将数据单向同步至测试数据库,解决测试数据独立性、稳定性问题,有效管理和使用测试数据,利于系统测试的高效有序进行。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为现有银行测试的架构示意图;
图2为本发明实施例中银行测试的架构示意图;
图3是本发明实施例中的基于消息队列的测试数据同步方法的流程示意图一;
图4示出了本发明实施例中的数据同步筛选参数表;
图5是本发明实施例中的基于消息队列的测试数据同步方法的流程示意图二;
图6示出了本发明实施例中的基于消息队列的测试数据同步方法的应用场景;
图7示出了本发明实施例中的消息队列的模型;
图8示出了本发明实施例中的分布式消息读取模型;
图9示出了本发明实施例中验证数据库修改后将数据变化情况通过消息发送到消息中心的详细过程;
图10示出了本发明实施例中通过消费消息中心的消息完成从验证数据库到测试数据库单向同步的详细过程;
图11是本发明实施例中的基于消息队列的测试数据同步装置的结构框图;
图12为本发明实施例电子设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图2为本发明实施例中银行测试的架构示意图,采用验证数据库B1、消息队列(也可称为消息中心)S1以及多个测试数据库B21~B2n形成的三层架构,验证数据库将修改数据单向传输到消息队列S1,各测试数据库再根据本库数据需要去消息队列S1中拉取需要的数据,实现数据从验证数据库S1至多个测试数据库B21~B2n的单向同步。
其中,若需要修改验证数据库中数据,比如新增测试数据或者修改测试数据,需要有验证权限的用户登录验证数据库进行操作,以防测试数据被错误程序或者手工修改数据库变成错误数据,避免使用不规范的方式新增,修改,删除数据,导致全表参数等误操作,甚至是一段时间后,测试数据就会变的无法使用和修复的问题。
测试人员在测试时调用测试数据库中的数据,根据需求修改测试数据库中的测试数据,各测试数据库相互独立,隔离不同产品测试人员使用的测试数据,避免测试人员使用他测试人员重要数据的情况导致大量数据问题引起的测试问题。
综上所述,采用测试数据单向同步方式,解决测试数据使用管理的问题,减轻测试数据管理成本,满足测试数据的稳定可用,安全独立的要求。
图3是本发明实施例中的基于消息队列的测试数据同步方法的流程示意图一;如图3所示,该基于消息队列的测试数据同步方法可以包括以下内容:
步骤S100:响应于验证数据库中的数据变化向消息队列发送数据变化消息;
具体地,当验证数据库中的数据发生变化时,比如新增或修改时,向消息队列发送数据变化消息。
其中,数据变化消息包括:消息主题以及修改前信息、修改后信息等,消息主题是指每条发布到消息中心的消息都有一个类别,这个类别被称为消息主题。例如验证数据库中的表(表名手机银行信息表PTHHKWAP)数据发生修改,就产生一个消息主题为DRP_PTHHKWAP的消息。
举例来说,当验证数据库中的表数据记录发生变化时,将表名、数据字段变化发送到消息队列。
步骤S200:根据各测试数据库的需求拉取所述消息队列中对应的数据变化消息;
具体地,各测试数据库从消息队列读取消息,根据消息内容筛选满足本测试数据库实用要求的数据,并将数据同步到当前测试数据库。
其中,当消息筛选完成后,提交偏移量,表示已经消费完这条消息。
步骤S300:根据所述数据变化消息修改对应测试数据库中的数据,以实现测试数据由验证数据库向测试数据库的单向同步。
根据消息中修改前信息定位测试数据库数据,根据消息中修改后信息修改测试数据库数据,实现数据同步。
本发明实施例提供的基于消息队列的测试数据同步方法,采用验证数据库与测试数据库的分级架构,验证数据库通过消息队列将数据单向同步至测试数据库,解决测试数据独立性、稳定性问题,有效管理和使用测试数据,利于系统测试的高效有序进行。
在一个可选的实施例中,该消息队列可为kafka。
Kafka是一种高吞吐量的分布式发布订阅消息系统,Kafka通过Hadoop的并行加载机制统一线上和离线的消息处理,通过集群来提供实时的消息,吞吐量稿,提供消息的持久化,支持Hadoop并行加载,使用kafka在验证数据库和测试数据库之间同步数据,能够有效提高数据同步效率。
在一个可选的实施例中,该步骤S200具体包括:
根据各测试数据库预设的数据同步筛选参数表拉取所述消息队列中对应的数据变化消息。
其中,银行交易由交易柜员操作,通过设置数据同步筛选参数表,达到数据同步筛选的控制,如图4所示,为消息队列消费程序定义数据同步筛选参数表:交易柜员为银行交易的操作柜员,由5位不为0开头的数字组成,例如12723,每个测试数据库使用人员分配特定柜员号,同时创建公共柜员号,由0+4位不为0开头的数字组成,例如01201;是否同步下载,可设置1-是2-否;参数生效日期为4位年份+2位月份+2月日期组成,中间用-隔开,例如1990-01-01;参数失效日期为4位年份+2位月份+2月日期组成,中间用-隔开,例如2030-01-01;状态可以设置1-正常,2-作废;消费程序通过判断消息队列中的信息满足交易柜员等于参数表中柜员,当前日期在生效日期和失效日期区间内,状态正常,是否同步下载为1-是这些条件,就同步该条数据到测试数据库。
在一个可选的实施例中,参见图5,该基于消息队列的测试数据同步方法还可以包括:
步骤S400:获取模拟交易数据;
银行柜员发起交易后,测试人员通过分配的交易柜员在验证数据库所属环境进行交易,模拟客户办理电子银行开立业务,一方面能够防止将真实的客户生产环境抽取数据导入测试环境导致客户隐私泄露的安全风险和数据抽取无法满足所有特征客户要求的问题,也能够防止通过正常业务界面办理导致无法产生历史上已经取消的业务功能数据,例如非实名账户等情况现有银行交易无法再开立出来,同时,通过模拟交易产生数据防止手工修改数据库造数存在测试人员之间数据交叉使用导致数据混乱错误的问题。
步骤S500:对所述模拟交易数据进行合法性检查;
若检查通过,执行步骤S600;否则执行步骤S700。
其中,通过在将数据进行存储、同步之前,对数据进行合法性检查,防止不合规的数据引入到测试环节影响测试的准确度的问题。
步骤S600:根据所述模拟交易数据修改所述验证数据库中的数据。
具体地,当模拟交易数据合规后,根据模拟交易数据修改所述验证数据库中的数据,修改包括:新增、修改、删除等不同方式。
步骤S700:结束。
值得说明的是,在根据所述模拟交易数据修改所述验证数据库中的数据时,保存修改动作以及修改前的数据,实现数据溯源,也能够在必要时进行数据修复。
综上所述,本发明实施例提供的基于消息队列的测试数据同步方法,适用于银行测试数据同步,能形成满足兼具稳定性和独立性的测试数据,以解决测试人员工作过程中需要投入大量精力造制造测试数据和同步测试数据的问题,不需要每个项目周期从真实业务导入大量数据,去掉导入前需要花费精力对客户证件、姓名、手机号等敏感数据进行数据变形的环节,防止大量数据使用一段时间后被错误程序或者手工修改数据库变成错误数据,避免测试人员为满足测试要求而使用他人数据或篡改数据等问题,满足测试人员对数据使用和维护的要求。
本发明提供的数据库操作记录机制,记录数据和数据库操作,将修改前后数据信息发送到kafka。
通过验证数据库+测试数据库的配置,验证数据库数据修改触发生产者(即验证数据库)发送修改信息到消息队列,各消费者(即测试数据库)消费队列消息,筛选满足当前测试数据库对应操作者标签的消息(修改信息中包括操作者标签),将筛选出的数据同步到测试数据库,解决了数据稳定性问题。
在一个可选的实施例中,可按照测试的内容划分测试数据库使用权限,各测试人员只能使用规范交易柜员操作验证数据库,保持验证数据库数据稳定,当测试数据库数据破坏后,可以通过数据库操作从验证数据库重新导入正确数据。
通过采用上述技术方案,解决了数据独立性问题,各验证数据库数据通过在验证数据库交易产生数据,或者通过手工录入测试数据库数据,满足本测试组测试人员数据使用要求,不影响其他测试数据库数据。
为了使本领域技术人员更好地理解本发明,下面举例对本发明的实现过程进行说明:
图6示出了本发明实施例中的基于消息队列的测试数据同步方法的应用场景;如图6所示,使用验证数据库+多个测试数据库的结构。在规范了测试人员的操作权限后,在验证数据库,测试需要通过正常的发起交易来维护测试数据。
不同产品线测试人员对应不同测试数据库,继续沿用旧的权限修改数据。当A产品线的测试人员需要使用数据时,使用分配的交易柜员号A在验证环境制造数据,通过单向同步功能,将本次验证环境单向同步到A产品线的测试数据库。如果A测试人员想要将这个数据给其他产品线使用,则使用分配的公共柜员号,在验证环境制造数据,通过单向同步功能,将本次验证环境单向同步到所有产品线的测试数据库。在项目前期,各产品测试提交数据需求,区分公共数据和本产品线私有数据,在验证数据库完成增量数据制造工作。项目测试阶段只需要使用本产品线分配的测试数据库进行测试工作,各产品线在存量数据使用上不产生横向影响。
图7示出了本发明实施例中的消息队列的模型;消息队列的模型是一个分布式的流平台。
消息生产者(Producer)负责产生和发送消息到消息中心(Broker)。验证数据库承担了消息生产者角色,当验证数据库中的表数据记录发生变化时,将表名、数据字段变化发送到消息中心(即消息队列)。
消息中心负责消息的存储、确认、重试等。
消息消费者(Consumer)负责拉取或接收消息中心(Broker)的消息,并进行相应处理。测试数据库承担了消息消费者角色,从消息中心读取消息,根据消息内容筛选,将满足本测试数据库使用要求的数据同步到当前测试数据库。
每条发布到消息中心的消息都有一个类别,这个类别被称为消息主题Topic。
消费者组(Consumer Group):一个群组里的消费者订阅的是同一个主题,每个消费者接收主题一部分分区的消息。
图8示出了本发明实施例中的分布式消息读取模型;其中,消息中心采用分布式消息读取模型。
分区数(Partition)是在创建消息主题topic时指定,生产者发送消息的时候消息会被均衡的分布到各个分区上。每条消息在Kafka服务端的位置称为偏移量(offset),offset是一个long型数字,它唯一标记一条消息,消费者通过(offset、partition、topic)跟踪记录。每个消费者会被分配一个独立的GroupID,每个GroupID会独立记录消费情况,不同GroupID的消费者消费信息完全独立,例如GroupID A的消费者只需要关心offset,而不需要关心消息存放的具体信息,可以清晰的知道当前这个主题的消息处理了多少,还有多少这个主题的消息待处理,便于消息处理稳定和独立。
下面对交易发起到数据同步进行全面的剖析,以银行常见的电子银行开立交易为例:
图9示出了本发明实施例中验证数据库修改后将数据变化情况通过消息发送到消息中心的详细过程,包括以下步骤:
步骤S901:银行柜员发起交易。
银行柜员发起交易,测试人员通过分配的交易柜员(柜员号12723)在验证数据库所属环境进行交易,模拟客户办理电子银行开立业务。
步骤S902:交易读写数据库。
交易读写数据库,进行交易录入,提交后台数据库,交易读写验证数据库数据;
步骤S903:修改验证数据库数据;
具体地,交易数据通过合法性检查,修改验证数据库数据(新增手机银行信息表PTHHKWAP记录,新增电子银行注册卡列表PTHRSARM,新增客户安全介质表BTHEBPCF,用于存放客户手机号,注册卡,U盾等相关信息)。
步骤S904:使用交易继承基类保存数据库修改动作。
具体地,保存交易中涉及验证数据库修改的动作,保存tablename-表名,operflag-操作类型,包括update-修改,delete-删除,insert新增,以及表记录修改前表数据和记录修改后表数据。
步骤S905:交易基类创建KafkaProducer;
KafkaProducer为消息生产者。
步骤S906:发送消息send(Topic,message)。
消息主题Topic以tablename命名,将消息发送到Broker消息处理中心,分别以DRP_PTHHKWAP,DRP_PTHRSARM,DRP_BTHEBPCF为消息主题,发送3条信息到消息处理中心,内容为insert动作的sql语句。
图10示出了本发明实施例中通过消费消息中心的消息完成从验证数据库到测试数据库单向同步的详细过程,其中,各测试环境的消费程序通过消费消息中心的消息将验证数据库的数据变化有筛选的同步到测试数据库,完成从验证数据库到测试数据库单向同步的详细过程,具体包括以下步骤:
步骤S1001:创建消费者Consumer。
各测试数据环境消费程序创建Consumer消息消费者。
步骤S1002:订阅主题Subscribe(Topic);
同时,验证数据库发送的消息主题一一对应,本例中消息主题为DRP_PTHHKWAP,DRP_PTHRSARM,DRP_BTHEBPCF。
步骤S1003:测试数据库配置消费程序,配置消息筛选标签(交易柜员号);
具体地,测试数据库所属环境配置消费程序,配置数据同步筛选参数表,将需要同步到当前测试数据库的数据对应的交易柜员号维护到数据同步筛选参数表中。
步骤S1004:拉取消息poll(),将满足筛选条件(当前测试环境归属柜员/公共柜员)的消息下载;
各测试数据库消费消息队列,本例中电子银行测试服务器GroupID定义为F-EBANK,其他测试服务器以补充名的命名规则命名自己的GroupID。
步骤S1005:提交偏移量commit();
具体地,提交偏移量commit()表示已经消费完这条消息。
步骤S1006:根据消息中修改前信息定位测试数据库数据,根据消息中修改后信息修改测试数据库数据;
例如验证数据库(基金测试数据库)发现这3条消息柜员号为12723,不满足基金测试数据库要求,则不同步该数据变化;验证数据库(电子银行测试数据库)发现这3条消息柜员号为12723,满足电子银行测试数据库要求,将该消息中的数据变化SQL在测试数据库执行,实现这笔电子银行客户的数据同步,使电子银行测试数据独立在电子银行测试数据库中。
步骤S1006完成之后,可以读取下一信息,重复数据同步步骤。
基于同一发明构思,本申请实施例还提供了一种基于消息队列的测试数据同步装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于基于消息队列的测试数据同步装置解决问题的原理与上述方法相似,因此基于消息队列的测试数据同步装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图11是本发明实施例中的基于消息队列的测试数据同步装置的结构框图。如图11所示,该基于消息队列的测试数据同步装置具体包括:消息发送模块10、消息拉取模块20以及数据单向同步模块30。
消息发送模块10响应于验证数据库中的数据变化向消息队列发送数据变化消息;
其中,所述消息队列为kafka。
消息拉取模块20根据各测试数据库的需求拉取所述消息队列中对应的数据变化消息;
数据单向同步模块30根据所述数据变化消息修改对应测试数据库中的数据,以实现测试数据由验证数据库向测试数据库的单向同步。
本发明实施例提供的基于消息队列的测试数据同步装置,采用验证数据库与测试数据库的分级架构,验证数据库通过消息队列将数据单向同步至测试数据库,解决测试数据独立性、稳定性问题,有效管理和使用测试数据,利于系统测试的高效有序进行。
在一个可选的实施例中,该消息拉取模块包括:消息拉取单元,根据各测试数据库预设的数据同步筛选参数表拉取所述消息队列中对应的数据变化消息。
上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为电子设备,具体的,电子设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中电子设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于消息队列的测试数据同步方法的步骤。
下面参考图12,其示出了适于用来实现本申请实施例的电子设备600的结构示意图。
如图12所示,电子设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述基于消息队列的测试数据同步方法的步骤。
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于消息队列的测试数据同步方法,其特征在于,包括:
响应于验证数据库中的数据变化向消息队列发送数据变化消息;
根据各测试数据库的需求拉取所述消息队列中对应的数据变化消息;
根据所述数据变化消息修改对应测试数据库中的数据,以实现测试数据由验证数据库向测试数据库的单向同步。
2.根据权利要求1所述的基于消息队列的测试数据同步方法,其特征在于,所述消息队列为kafka。
3.根据权利要求1所述的基于消息队列的测试数据同步方法,其特征在于,所述根据各测试数据库的需求拉取所述消息队列中对应的数据变化消息,包括:
根据各测试数据库预设的数据同步筛选参数表拉取所述消息队列中对应的数据变化消息。
4.根据权利要求1所述的基于消息队列的测试数据同步方法,其特征在于,在响应于验证数据库中的数据变化向消息队列发送数据变化消息之前,还包括:
获取模拟交易数据;
对所述模拟交易数据进行合法性检查;
若检查通过,则根据所述模拟交易数据修改所述验证数据库中的数据。
5.根据所述权利要求4所述的基于消息队列的测试数据同步方法,其特征在于,在根据所述模拟交易数据修改所述验证数据库中的数据时,保存修改动作以及修改前的数据。
6.一种基于消息队列的测试数据同步装置,其特征在于,包括:
消息发送模块,响应于验证数据库中的数据变化向消息队列发送数据变化消息;
消息拉取模块,根据各测试数据库的需求拉取所述消息队列中对应的数据变化消息;
数据单向同步模块,根据所述数据变化消息修改对应测试数据库中的数据,以实现测试数据由验证数据库向测试数据库的单向同步。
7.根据权利要求6所述的基于消息队列的测试数据同步装置,其特征在于,所述消息队列为kafka。
8.根据权利要求6所述的基于消息队列的测试数据同步装置,其特征在于,所述消息拉取模块包括:
消息拉取单元,根据各测试数据库预设的数据同步筛选参数表拉取所述消息队列中对应的数据变化消息。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5任一项所述的基于消息队列的测试数据同步方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5任一项所述的基于消息队列的测试数据同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010578990.2A CN111767343A (zh) | 2020-06-23 | 2020-06-23 | 基于消息队列的测试数据同步方法和装置、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010578990.2A CN111767343A (zh) | 2020-06-23 | 2020-06-23 | 基于消息队列的测试数据同步方法和装置、设备以及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111767343A true CN111767343A (zh) | 2020-10-13 |
Family
ID=72721776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010578990.2A Pending CN111767343A (zh) | 2020-06-23 | 2020-06-23 | 基于消息队列的测试数据同步方法和装置、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767343A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282506A (zh) * | 2021-06-11 | 2021-08-20 | 中国农业银行股份有限公司 | 测试数据获取方法、装置、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013131448A1 (zh) * | 2012-03-09 | 2013-09-12 | 华为技术有限公司 | 数据同步方法、系统及数据访问装置 |
CN107295032A (zh) * | 2016-03-30 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种数据中心的数据同步的方法和设备 |
CN109582731A (zh) * | 2018-10-18 | 2019-04-05 | 恒峰信息技术有限公司 | 一种数据实时同步方法及系统 |
CN109815028A (zh) * | 2018-12-27 | 2019-05-28 | 北京摩拜科技有限公司 | 数据同步的系统、方法、装置和计算机存储介质 |
CN111274257A (zh) * | 2020-01-20 | 2020-06-12 | 山东汇贸电子口岸有限公司 | 一种基于数据的实时同步方法及系统 |
-
2020
- 2020-06-23 CN CN202010578990.2A patent/CN111767343A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013131448A1 (zh) * | 2012-03-09 | 2013-09-12 | 华为技术有限公司 | 数据同步方法、系统及数据访问装置 |
CN107295032A (zh) * | 2016-03-30 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种数据中心的数据同步的方法和设备 |
CN109582731A (zh) * | 2018-10-18 | 2019-04-05 | 恒峰信息技术有限公司 | 一种数据实时同步方法及系统 |
CN109815028A (zh) * | 2018-12-27 | 2019-05-28 | 北京摩拜科技有限公司 | 数据同步的系统、方法、装置和计算机存储介质 |
CN111274257A (zh) * | 2020-01-20 | 2020-06-12 | 山东汇贸电子口岸有限公司 | 一种基于数据的实时同步方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282506A (zh) * | 2021-06-11 | 2021-08-20 | 中国农业银行股份有限公司 | 测试数据获取方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430740B2 (en) | Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods | |
US11328093B1 (en) | Protecting sensitive data | |
US11520928B2 (en) | Data processing systems for generating personal data receipts and related methods | |
US8538864B2 (en) | Providing payment software application as enterprise services | |
CN108536521B (zh) | 基于仿真平台离线环境核对方法及装置 | |
WO2015195590A1 (en) | Tenant provisioning for testing a production multi-tenant service | |
US7734516B2 (en) | Method for providing revisional delta billing and re-billing in a dynamic project environment | |
CN112488652A (zh) | 工单审核方法、系统、终端和存储介质 | |
US10776517B2 (en) | Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods | |
CN110766545A (zh) | 一种银行会计分录生成方法 | |
CN114219321A (zh) | 一种信息系统投产准备方法及装置 | |
US20220383222A1 (en) | Anonymous distributed consensus regarding the verification of protocols | |
CN111414369A (zh) | 一种数据处理方法、装置及设备 | |
CN111767343A (zh) | 基于消息队列的测试数据同步方法和装置、设备以及介质 | |
Sullivan | Official Google Cloud Certified Professional Cloud Architect Study Guide | |
CN117194242A (zh) | 交易系统的日志回放方法及其装置、电子设备、存储介质 | |
Morris et al. | Developing a blockchain business network with hyperledger composer using the ibm blockchain platform starter plan | |
CN116383052A (zh) | 批处理任务的自动化测试方法、装置、设备及存储介质 | |
CN110989984A (zh) | 一种数据处理方法、装置及系统 | |
US11625502B2 (en) | Data processing systems for identifying and modifying processes that are subject to data subject access requests | |
CN115470139A (zh) | 一种接口测试方法及相关设备 | |
JP2014182805A (ja) | 中央管理及びアクセスシステム、複数の独立サーバでデータ処理を行う方法、並びにデータセット | |
CN114491662A (zh) | 一种基于区块链的数据资产审计方法、系统及设备 | |
WO2020155167A1 (en) | Application of cross-organizational transactions to blockchain | |
CN113592436B (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 |