CN108319719A - 数据库数据校验方法、装置、计算机设备和存储介质 - Google Patents
数据库数据校验方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN108319719A CN108319719A CN201810146061.7A CN201810146061A CN108319719A CN 108319719 A CN108319719 A CN 108319719A CN 201810146061 A CN201810146061 A CN 201810146061A CN 108319719 A CN108319719 A CN 108319719A
- Authority
- CN
- China
- Prior art keywords
- data
- operational order
- verified
- database
- operation instruction
- 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.)
- Granted
Links
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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- 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/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种数据库数据校验方法、装置、计算机设备和存储介质,包括:获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库,对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令,原始操作指令执行完毕,从被测数据库获取待校验数据,当第一操作指令执行完毕时,从基准数据库获取对应的标准数据,将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果。对被测数据库和基准数据库执行同样的操作指令,对执行操作指令后的数据进行对比,根据对比结果确定校验结果,以提高对被测数据库中数据正确性校验的校验效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据库数据校验方法、装置、计算机设备和存储介质。
背景技术
随着数据库的使用和推广,数据库的测试也越来越重要,越来越复杂。数据库中存储数据的正确性是测试人员在被测数据库过程中最关注的。数据库包括分布式数据库、集中数据库等,其中分布式数据库是利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。数据库的测试方法和测试场景非常多样化,每一次测试都需要关注数据的正确性。常见的数据库数据正确性校验方法为日志校验法,即通过收集客户端执行日志,通过该日志得出预期结果数据,对预期结果与数据库实际查询的结果进行对比,通过对比结果得出数据是否正确。日志校验法需要对日志进行分析,当日志量较大时,数据正确性验证效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种通过对客户端的操作指令进行分流,被测数据库和基准数据库执行同样的操作指令,实现被测数据库的数据正确性检验,从而提高被测数据库中数据正确性校验的校验效率的数据库数据校验方法、装置、计算机设备和存储介质。
一种数据库数据校验方法,包括:
获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库;
对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令;
当原始操作指令执行完毕时,根据校验规则从被测数据库获取待校验数据;
当第一操作指令执行完毕时,根据校验规则从基准数据库获取对应的标准数据;
将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果。
一种数据库测试装置,其特征在于,所述装置包括:
指令发送模块,用于获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库;
指令执行模块,用于对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令;
数据获取模块,用于当原始操作指令执行完毕时,根据校验规则从被测数据库获取待校验数据,当第一操作指令执行完毕时,根据校验规则从基准数据库获取对应的标准数据;
数据校验模块,用于将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库;
对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令;
当原始操作指令执行完毕时,根据校验规则从被测数据库获取待校验数据;
当第一操作指令执行完毕时,根据校验规则从基准数据库获取对应的标准数据;
将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库;
对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令;
当原始操作指令执行完毕时,根据校验规则从被测数据库获取待校验数据;
当第一操作指令执行完毕时,根据校验规则从基准数据库获取对应的标准数据;
将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果。
上述数据库数据校验方法、装置、计算机可读存储介质和计算机设备,获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库,对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令,当原始操作指令执行完毕时,根据校验规则从被测数据库获取待校验数据,当第一操作指令执行完毕时,根据校验规则从基准数据库获取对应的标准数据,将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果。通过将客户端的原始操作指令和与原始操作指令匹配的第一操作指令,以同步控制的方式分别发送至被测数据库和基准数据库,被测数据库和基准数据库按照相同的时序分别执行原始操作指令和第一操作指令,分别获取执行原始操作指令后的待校验数据和执行第一操作指令后的标准数据,对待校验数据和标准数据进行对比,根据对比结果确定待校验数据的校验结果,以提高对被测数据库中数据正确性校验的校验效率。
附图说明
图1为一个实施例中数据库数据校验方法的应用环境图;
图2为一个实施例中数据库数据校验方法的流程示意图;
图3为一个实施例解析指令的流程示意图;
图4为一个实施例中执行指令的流程示意图;
图5为另一个实施例中数据库数据校验方法的流程示意图;
图6为一个实施例中数据获取的流程示意图;
图7为一个实施例中数据校验的流程示意图;
图8为又一个实施例中数据库数据校验方法的流程示意图;
图9为一个具体实施例中数据库数据校验方法的流程示意图;
图10为一个实施例中数据库数据校验装置的结构框图;
图11为一个实施例中指令执行模块的结构框图;
图12为另一个实施例中指令执行模块的结构框图;
图13为另一个实施例中数据获取模块的结构框图;
图14为另一个实施例中校验模块的结构框图;
图15为另一个实施例中数据库数据校验装置的结构框图;
图16为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中数据库数据校验方法的应用环境图。图1为一个实施例中数据库数据校验方法的应用环境图。在该应用环境中,包括终端110以及服务器120。终端110通过获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库,对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令,当原始操作指令执行完毕时,根据校验规则从被测数据库获取待校验数据,当第一操作指令执行完毕时,根据校验规则从基准数据库获取对应的标准数据,将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果,将待校验数据的数据校验结果发送给服务器120。服务器120通过获取终端110发送的客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库,对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令,当原始操作指令执行完毕时,根据校验规则从被测数据库获取待校验数据,当第一操作指令执行完毕时,根据校验规则从基准数据库获取对应的标准数据,将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果,将数据校验结果发送给终端110。
终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种数据库数据校验方法。本实施例主要以该方法应用于上述图1中的终端110(或服务器120)来举例说明。参照图2,该数据库数据校验方法具体包括如下步骤:
步骤S202,获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库。
其中,操作指令是用于操作数据库的指示和命令,原始操作指令是指客户端写入的用于操作数据库的指示和命令,原始操作指令中可以包含一个或多个操作指令。数据库的常见操作指令主要包括但不限于:创建表格、删除表格、插入数据、删除数据和添加数据等。数据库包括但不限于Oracle、MySQL、SQL Server、postgreSQL和DB2等数据库。被测数据库是等待被测试的数据库,基准数据库是一个稳定数据库,该稳定数据库可作为标准数据库,在数据库测试过程中,基准数据库被认为是一个正确的数据库。
具体地,获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令。不同类型的数据库实现相同的数据处理功能时采用的操作指令可能不相同,当原始操作指令对应的数据库类型与基准数据类型一致时,第一操作指令与原始操作指令完全一致,当原始操作指令对应的数据库类型与基准数据类型不一致时,第一操作指令与原始操作指令实现相同的功能,两个操作指令的形式可能不一致。当原始操作指令为多个时,第一操作指令包含多个操作指令,且第一操作指令中的各个操作指令与原始操作指令中的各个操作指令相匹配。以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库,同步控制即为相同的时序控制,保证被测数据库和基准数据库依次执行相同功能的指令,将原始操作指令中的各个操作指令的按顺序发送至被测数据库,以相同的顺序将第一操作指令中的各个操作指令发送至基准数据库。
步骤S204,对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令。
具体地,相同的时序是指同样的时间先后顺序,在被测数据库中执行原始操作指令,按照与原始操作指令的执行顺序相同的执行顺序对基准数据库执行第一操作指令。
原始操作指令包含一个指令时,如操作指令为删除表格A的操作指令,对被测数据库执行删除表格A的操作指令,对基准数据库执行删除表格A的操作指令。原始操作指令包含多个操作指令时,如原始操作指令包括删除表格A、创建表格B和删除表格C中的数据c三个操作指令,则第一操作指令包括对应的删除表格A、创建表格B和删除表格C中的数据c三个操作指令,且对被测数据库和基准数据库执行指令的步骤为,首先对被测数据库执行删除表格A的操作指令,且对基准数据库执行删除表格A的操作指令,当对被测数据库和基准数据库执行的删除表格A的操作指令成功执行后,再对被测数据库执行创建表格B的操作指令,且对基准数据库执行创建表格B的操作指令,当对被测数据库和基准数据库执行的创建表格B的操作指令成功执行后,再对被测数据库执行删除表格C中的数据c的操作指令,且对基准数据库执行删除表格C中的数据c的操作指令。以相同的时序执行操作指令能够保证被测数据库和基准数据库中执行的操作指令是一致的,避免执行操作指令不一致带来的误差。
步骤S206,当原始操作指令执行完毕时,根据校验规则从被测数据库获取待校验数据,当第一操作指令执行完毕时,根据校验规则从基准数据库获取对应的标准数据。
具体地,当原始操作指令中的各个操作指令执行完毕时,根据预先设置的校验规则从被测数据库获取待校验数据,当第一操作指令中的各个操作指令执行完毕时,根据相同的校验规则从基准数据库获取对应的标准数据,其中校验规则是自定义的用于从被测数据库和基准数据库中进行数据筛选的规则,包括但不限于全量校验、部分数据校验、活动数据校验或表格校验等。根据相同的校验规则获取对应的待校验数据和标准数据,待校验数据是需要被验证的数据,标准数据是指正确的可作为参考的数据。
步骤S208,将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果。
具体地,将标准数据和待校验数据进行对比,其中标准数据和待校验数据进行对比方式可以自定义,根据对比结果确定待校验数据的数据校验结果,数据校验结果包括校验成功和校验失败,校验成功表示标准数据和待校验数据一致,校验失败表示待校验数据中存在错误数据。
在一个实施例中,自定义的数据对比方式采用对标准数据和待校验数据直接进行对比的方式。对标准数据中的各个数据和待校验数据中的各个数据直接进行对比,得到对应的对比结果,当对比结果一致时,表示校验成功,当对比结果不一致时,表示校验失败。
在另一个实施例中,自定义的数据对比方式为对标准数据和待校验数据作进一步处理后的数据进行对比的方式,对标准数据和待校验数据作进一步处理后的数据进行对比,根据对比结果确定待校验数据的数据校验结果。其中对标准数据和待校验数据作进一步处理包括但不限于对数据进行加密或编码处理等。当采用对标准数据和待校验数据进行加密处理时,对标准数据对应的加密结果和待校验数据对应的加密结果进行对比,当标准数据对应的加密结果和待校验数据对应的加密结果匹配时,表示校验成功,当标准数据对应的加密结果和待校验数据对应的加密结果不匹配时,表示校验失败。当采用对标准数据和待校验数据进行编码处理时,对标准数据和待校验数据分别进行编码,对标准数据对应的编码数据和待校验数据对应的编码数据进行对比,当标准数据对应的编码数据和待校验数据对应的编码数据匹配时,表示校验成功,当标准数据对应的加密结果和待校验数据对应的加密结果不匹配时,表示校验失败。
上述数据库数据校验方法,通过将客户端的原始操作指令和与原始操作指令对应的第一操作指令分别发送至被测数据库和基准数据库,被测数据库和基准数据库按照相同的时序分别执行原始操作指令和第一操作指令,获取被测数据库执行原始操作指令后的待校验数据和基准数据库执行第一操作后的标准数据,对待校验数据和标准数据进行对比,根据对比结果确定待校验数据的校验结果,以提高数据库数据正确性校验的速率。
如图3所示,在一个实施例中,获取客户端的原始操作指令之后,还包括:
步骤S402,根据被测数据库的类型将原始操作指令解析为与被测数据库匹配的操作指令。
具体地,被测数据库的类型和原始操作指令对应的数据库的类型可能不一致,在获取到原始操作指令后,需根据被测数据库的类型对原始操作指令进行解析得到与被测数据库的类型匹配的操作指令,该操作指令作为原始操作指令。
获取与原始操作指令匹配的第一操作指令,包括:
步骤S404,根据基准数据库的类型将原始操作指令解析为与基准数据库匹配的第一操作指令。
具体地,基准数据库的类型与原始操作指令对应的数据库的类型可能不一致,在获取到原始操作指令后,需根据基准数据库的类型对原始操作指令进行解析得到与基准数据库的类型匹配的操作指令,该操作指令作为第一操作指令。通过对获取到的原始操作指令进行解析得到与各个数据库的类型对应的操作指令,通过一套操作指令便捷实现多种类型的数据库的数据正确性校验。
以MySQL和Oracle为例,客户端的操作指令对应的数据库为MySQL,基准数据库为Oracle,则在对变量进行赋值,MySQL对变量进行赋值的原始操作指令为“SET lv_inputstr=iv_inputstr”,将原始操作指令进行解析后得到的基准数据库Oracle的第一操作指令为“lv_inputstr:=iv_inputstr”。
如图4所示,在一个实施例中,步骤S204包括:
步骤S2042,从原始操作指令中获取测试起始操作指令作为当前测试操作指令,对被测数据库执行当前测试操作指令。
其中,原始操作指令包含多个操作指令,测试起始操作指令为原始操作指令中按照操作指令执行顺序最先执行的操作指令,当前测试操作指令为待执行的操作指令。
具体地,从原始操作指令中获取按照操作指令执行顺序第一个执行的测试起始操作指令,将测试起始操作指令作为当前测试操作指令,对被测数据库执行当前测试操作指令,执行当前测试操作指令后得到对应的操作结果。
步骤S2044,从第一操作指令中获取标准起始操作指令作为当前标准操作指令,对基准数据库执行当前标准操作指令。
其中,第一操作指令包含多个操作指令,标准起始操作指令为第一操作指令中按照操作指令执行顺序最先执行的操作指令,当前标准操作指令为待执行的操作指令。
具体地,从第一操作指令中获取按照操作指令执行顺序第一个执行的标准起始操作指令,将标准起始操作指令作为当前标准操作指令,对基准数据库执行当前标准操作指令,执行当前标准操作指令后得到对应的操作结果。
步骤S2046,当当前测试操作指令执行成功且当前标准操作指令执行成功时,将原始操作指令中的下一条指令作为当前测试操作指令,返回步骤S2042。
具体地,执行成功表示根据操作指令执行获得到正确的执行结果,如操作指令为插入一条数据,执行成功表示成功插入一条数据,在成功插入数据后可以接收到数据插入成功的返回结果,如数据库中insert一条数据,返回insert 0 1等用于表示插入成功的返回信息。当当前测试操作指令执行成功,且当前标准操作指令执行成功时,从原始操作指令中获取按顺序执行的当前测试操作指令的下一条操作指令作为当前测试操作指令,并继续对被测数据库执行下一条操作指令。
步骤S2048,将第一操作指令中的下一条指令作为当前标准操作指令,返回步骤S2044。
具体地,当当前测试操作指令执行成功,且当前标准操作指令执行成功时,从第一操作指令中获取按照顺序存储的当前标准操作指令的下一条指令作为当前标准操作指令,并继续对基准数据库执行当前标准操作指令。通过获取执行指令的执行结果,并对执行结果进行判断可减少数据正确性校验过程中由于操作失误带来的误差。
如图5所示,在一个实施例中,上述数据库数据校验方法,包括:
步骤S602,当当前测试操作指令执行失败时,获取当前测试操作指令对应的第一执行失败次数,当第一执行失败次数小于等于预设阈值时,返回步骤2042。
其中,执行失败表示根据操作指令执行获得到错误的执行结果或未能执行操作指令,并记录执行失败的次数。第一执行失败次数为对被测数据库执行当前测试操作指令失败的次数,对被测数据库执行当前测试操作指令失败是指对基准数据库中执行了当前标准操作指令但未实现当前测试操作指令对应的功能或未能执行当前测试操作指令,其中当前测试操作指令是指原始操作指令中的任意一个正在执行的操作指令。如当前测试操作指令为删除表格A,但在执行过程中返回的参数表示未能成功删除表格A,则表示当前测试操作指令执行失败。预设阈值是预先设置的用于指示对被测数据库是否再次执行当前测试操作指令的临界值,临界值可以根据经验自定义。
具体地,当当前测试操作指令执行失败时,获取对被测数据库执行当前测试操作指令失败的次数。当第一执行失败次数小于等于预设阈值时,对被测数据库继续执行当前测试操作指令,当第一执行失败次数大于预设阈值时,中止执行当前测试操作指令,并跳出对被测数据库执行原始操作指令的流程。如自定义的临界值为5,当第一执行失败次数为3,3小于5时,则对被测数据库继续执行当前测试操作指令,当第一执行失败次数为6,6大于5,则停止执行当前测试操作指令,跳出执行原始操作指令的流程,中止数据库的执行操作指令的流程。
步骤S604,当当前标准操作指令执行失败时,获取当前标准操作指令对应的第二执行失败次数,当第二执行失败次数小于预设阈值时,返回步骤2044。
其中,第二执行失败次数为对基准数据库执行当前标准操作指令失败的次数,对基准数据库执行当前标准操作指令失败是指对基准数据库中执行了当前标准操作指令但未实现当前标准操作指令对应的功能或未能执行当前标准操作指令,其中当前标准操作指令是指第一操作指令中的任意一个正在执行的操作指令。如当前标准操作指令为创建表格B,但在执行过程中返回的参数表示为能成功创建表格B,则表示当前标准操作指令执行失败。预设阈值是预先设置的用于指示对基准数据库是否再次执行当前标准操作指令的临界值,临界值可以根据经验自定义。如自定义的临界值为5,当第一执行失败次数为2,2小于5时,对被测数据库继续执行当前测试操作指令,若第一执行失败次数为6,则停止执行当前标准操作指令,跳出执行第一操作指令的流程。
具体地,当当前标准操作指令执行失败时,获取对标基准数据库执行当前标准操作指令失败的次数。当第二执行失败次数小于等于预设阈值时,对基准数据库继续执行当前标准操作指令,当第一执行失败次数大于预设阈值时,中止执行当前标准操作指令,并跳出对基准试数据库执行第一操作指令的流程,中止数据库的执行操作指令的流程。
图5虽然各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。
如图6所示,在一个实施例中,步骤S206,包括:
步骤S2062,获取配置文件,从配置文件中获取校验规则,校验规则包括全量校验和活动数据校验中的至少一种。
步骤S2064,当校验规则为全量校验时,从被测数据库获取全部数据库数据作为待校验数据。
步骤S2066,当校验规则为活动数据校验时,从被测数据库获取与原始操作指令的操作范围对应的数据库数据作为待校验数据。
具体地,配置文件为预先配置好的所需环境的设置和文件的集合,配置文件中包含但不限于被测数据库和基准数据库的IP地址、端口参数、客户端标识、校验规则和校验频率等。获取预先配好的配置文件,并获取配置文件中的校验规则中的至少一种校验规则,其中校验规则包括但不限于全量校验、活动校验。在进行数据正确性校验时,通过校验规则选择合适的待校验数据可提高测试效率。校验频率包括但不限于数据校验的时间和校验间隔等,其中校验时间可以根据条件触发,如完成特征操作指令后触发校验等,校验时间间隔可自定义设定,实时校验,每天校验等。通过设置校验频率利于测试人员及时发现数据问题,从而提高测试效率。
在一个实施例中,当校验规则为全量校验时,从被测数据库中获取全部数据作为需要被验证的数据,获取待校验数据的方式包括但不限于采用查询语句对被测数据库中的数据进行查询,将查询到的数据作为待校验数据。
在另一个实施例中,当校验规则为活动数据校验时,从被测数据库获取与原始操作指令的操作范围对应的数据库数据作为待校验数据,在执行原操作指令后,被测数据发生改变的数据,如原始操作指令为删除表格A中的数据a,则待校验数据为数据库中包括表格A中数据的数据。
如图7所示,在一个实施例中,步骤S208,包括:
步骤S2082,将标准数据写入文本生成对应的标准文本,通过加密算法对标准文本进行加密得到对应的标准加密结果。
具体地,将获取到的标准数据按自定义顺序依次写入文本中,得到对应的标准文本,通过加密算法对标准文本进行加密,对文本进行加密是采用自定义算法对文本进行处理,常见的加密算法包括但不限于信息-摘要加密算法(Message-Digest Algorithm,MD)、数据加密标准算法(Data Encryption Standard,DES)和高级加密标准算法(AdvancedEncryption Standard,AES)等。对标准文本进行加密得到对应的加密值,如采用MD5算法对标准文本进行加密处理,得到标准文本对应的MD5值。
步骤S2084,将待校验数据写入文本生成对应的待校验文本,通过加密算法对待校验文本进行加密得到对应的待校验加密结果。
其中,加密算法与步骤S2084中的加密算法保持一致,将获取到的待校验数据按与上述自定义顺序同样的顺序依次写入文本中,得到对应的待校验文本,通过加密算法对待校验文本进行加密得到对应的加密值,如上述标准文本进行加密采用的采集算法为MD5算法,则对待校验文本进行加密处理的加密算法为MD5算法,采用MD5算法对待校验文本进行加密,得到待校验文本对应的MD5值。
步骤S2086,将标准加密结果和待校验加密结果进行对比,如果标准加密结果和待校验加密结果一致,则待校验数据的数据校验结果为校验成功,否则,待校验数据的数据校验结果为校验失败。
具体地,对标准加密结果和待校验加密结果进行对比,当标准加密结果和待校验加密结果一致时,对待校验数据和标准数据采用相同的加密算法进行加密后的结果一致,表示待校验数据和标准数据一致,待校验数据的数据校验结果为校验成功,当待校验数据和标准数据采用相同的加密算法进行加密后的结果一致时,表示待校验数据与标准数据存在差异,待校验数据的数据校验结果为校验失败。通过对数据进行加密处理,得到标准数据的加密值和待校验数据的加密值,采用加密值进行对比确定待校验数据的数据校验结果更为简单便捷。
如图8所示,在一个实施例中,上述数据库数据校验方法,包括:
步骤S802,当数据校验结果为校验失败时,从待校验数据中获取与标准数据存在差异的差异数据。
具体地,当数据校验结果为校验失败时,获取待校验数据中与标准数据存在差异的差异数据,差异数据是指待校验数据与标准数据不一样的数据。如待校验数据中表格A中的数据包含数据B,标准数据中表格A中的数据包含数据A,则数据B为差异数据,获取待校验数据中表格A中的数据B作为差异数据。
步骤S804,获取被测数据库对应的指令执行策略。
具体地,执行策略是指数据库服务器在执行数据库语句的时候,存在多个执行方案,资源消耗最小的执行方案为执行策略。如执行一条数据库语句,服务器收到数据库语句后首先对数据库的语法进行检测,不存在语法错误时,解析数据库语句,并执行数据库语句。执行策略包括数据库的执行过程或访问路径。获取在被测数据库执行的查询语句的执行过程和访问路径。
步骤S806,根据差异数据和指令执行策略确定差异数据在被测数据库中的存储位置。
具体地,通过执行过程和访问路径确定差异数据在被测数据库中的存储位置,其中数据库的存储位置包括存储表格、存储地址、存储单元等信息。根据执行策略对差异数据进行定位便于测试人员即时对数据库进行维护,如更改被测数据库中的差异数据。
如图9所示,在一个具体实施例中,上述数据库数据校验方法,包括:
步骤S1002,获取操作指令,通过流复制插件复制客户端的操作指令作为原始操作指令,流复制插件是用于实现数据共享技术的程序,数据库中的流复制插件是用于实现数据库中的数据共享或操作共享的程序。原始操作指令与第一操作指令相匹配,原始操作指令和第一操作指令包含多条数据库语句的操作指令,每一个操作指令可包含一条数据库语句,或包括多条数据库语句,如原始操作指令中包含删除表格、创建表格、删除数据等多条数据库语句。
步骤S1004,解析指令,获取被测数据库和基准数据库的数据库类型,根据被测数据库的类型将原始操作指令解析为与被测数据库匹配的操作指令,根据基准数据库的类型将原始操作指令解析为与基准数据库匹配的第一操作指令。
步骤S1006,指令分发,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库。
步骤S1008,执行指令,对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令。从原始操作指令中获取第一条操作指令作为当前测试操作指令,对被测数据库执行当前测试操作指令,从第一操作指令中获取标准起始操作指令作为当前标准操作指令,对基准数据库执行当前标准操作指令。
步骤S1010,判断指令是否成功执行,当当前测试操作指令执行成功且当前标准操作指令执行成功时,进入步骤S1012。当当前测试操作指令执行失败时,获取当前测试操作指令对应的第一执行失败次数,当第一执行失败次数小于等于预设阈值时,返回步骤S1008,和/或当当前标准操作指令执行失败时,获取当前标准操作指令对应的第二执行失败次数,当第二执行失败次数小于预设阈值时,返回步骤S1008。
步骤S1012,获取下一条指令,将原始操作指令中的下一条指令作为当前测试操作指令,返回步骤S1008,将第一操作指令中的下一条指令作为当前标准操作指令,返回步骤S1008。
步骤S1014,指令执行完毕,原始操作指令中的各个操作指令执行完毕,且第一操作指令中的各个操作指令执行完毕。
步骤S1016A,获取待校验数据,根据配置文件获取待校验数据,从配置文件中获取校验规则,其中校验规则包括全量校验和活动数据校验,当校验规则为全量校验时,从被测数据库获取全部数据库数据作为待校验数据。
步骤S1016B,获取标准数据,根据配置文件获取标准数据。从配置文件中获取校验规则,其中校验规则包括全量校验和活动数据校验,当校验规则为全量校验时,从基准数据库获取全部数据库数据作为标准数据,当校验规则为活动数据校验时,从基准数据库获取与第一操作指令的操作范围对应的数据库数据作为标准数据。
步骤S1018A,对待校验数据进行加密,将待校验数据写入文本生成对应的待校验文本,通过加密算法对待校验文本进行加密得到对应的待校验加密结果。
步骤S1018B,对标准数据进行加密,将标准数据写入文本生成对应的标准文本,通过加密算法对标准文本进行加密得到对应的标准加密结果。
步骤S1020,对比标准加密结果和待校验加密结果。
步骤S1022,判断待校验数据的数据校验结果,当待校验数据的数据校验结果为校验成功,进入步骤S1024A,当待校验数据的数据校验结果为校验失败,进入步骤S1024B。
步骤S1024A,校验结束。
步骤S1024B,获取差异数据,从待校验数据中获取与标准数据存在差异的差异数据。
步骤S1026,差异数据定位,获取被测数据库对应的指令执行策略,根据差异数据和指令执行策略确定差异数据在被测数据库中的存储位置。
需要说明的是,上述各个实施例中的数据库数据校验方法可以用于任何对海量的数据进行校验的场景中。比如,可以应用于对数据库中的游戏数据进行校验的场景中,也可以应用于对数据库中的社交数据进行校验的场景中,还可以应用于对数据库中的新闻数据进行校验的场景中等等。在不同的应用场景下,数据可来源于不同的应用,如数据库中的游戏数据进行数据校验的场景中,游戏数据来源于手游数据、页游数据或网游数据等等;对数据库中的社交数据进行校验的场景中,社交数据来源于各种社交软件使用过程中的用户数据;对数据库中的新闻数据进行校验的场景中,新闻数据来源于论坛、门户网站等等。在不同的应用场景下,上述数据库数据校验方法都能达到较好的校验结果,进而找到异常的差异数据。
在一个数据库中游戏数据正确性校验场景中,服务器对海量相关的游戏数据进行校验,从而找到异常数据。比如,游戏数据大约有上亿条关于游戏的数据,将上亿条游戏数据存储到数据库中,通过获取客户端的原始操作指令,并对原始操作指令进行解析得到与被测数据库的类型和基准数据库的类型对应的原始操作指令和第一操作指令,对被测数据库执行原始操作指令,以与原始操作指令执行顺序相同的执行顺序对基准数据库执行第一操作指令,在原始操作指令执行完毕后,根据校验规则获取被测数据库中的游戏数据作为待校验数据,在第一操作指令执行完毕后,根相同的数据校验规则获取基准数据库中的游戏数据作为标准数据,对待校验数据和标准数据进行对比,根据对比结果确定被测数据库中的待校验数据的校验结果,若校验结果为校验成功,表示待校验数据与标准数据一致,若校验结果为校验失败,从待校验数据中获取与标准数据存在差异的差异数据,获取被测数据库的执行策略,根据差异数据和执行策略确定差异数据的存储位置,以便对差异数据进行后续处理,如对差异数据进行修正等。
在一个数据库社交数据正确性校验场景中,服务器对海量相关的社交数据进行校验,从而找到异常数据。比如,社交数据大约有上亿条关于社交的数据,将上亿条社交数据存储到数据库中,通过获取客户端的原始操作指令,并对原始操作指令进行解析得到与被测数据库的类型和基准数据库的类型对应的原始操作指令和第一操作指令,对被测数据库执行原始操作指令,以与原始操作指令执行顺序相同的执行顺序对基准数据库执行第一操作指令,在原始操作指令执行完毕后,根据校验规则获取被测数据库中的社交数据作为待校验数据,在第一操作指令执行完毕后,根相同的数据校验规则获取基准数据库中的社交数据作为标准数据,对待校验数据和标准数据进行对比,根据对比结果确定被测数据库中的待校验数据的校验结果,若校验结果为校验成功,表示待校验数据与标准数据一致,若校验结果为校验失败,从待校验数据中获取与标准数据存在差异的差异数据,获取被测数据库的执行策略,根据差异数据和执行策略确定差异数据的存储位置,以便对差异数据进行后续处理,如对差异数据进行修正等。
如图10所示,在一个实施例中,数据库数据校验装置200,包括
指令发送模块202,用于获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库。
指令执行模块204,用于对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令。
数据获取模块206,用于当原始操作指令执行完毕时,根据校验规则从被测数据库获取待校验数据,当第一操作指令执行完毕时,根据校验规则从基准数据库获取对应的标准数据。
数据校验模块208,用于将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果。
在一个实施例中,指令发送模块202还用于根据被测数据库的类型将原始操作指令解析为与被测数据库匹配的操作指令,根据基准数据库的类型将原始操作指令解析为与基准数据库匹配的第一操作指令。
如图11所示,在一个实施例中,指令执行模块204包括:
当前指令执行单元2042,用于从原始操作指令中获取测试起始操作指令作为当前测试操作指令,对被测数据库执行当前测试操作指令,从第一操作指令中获取标准起始操作指令作为当前标准操作指令,对基准数据库执行当前标准操作指令。
下一条指令执行单元2044,用于当当前测试操作指令执行成功且当前标准操作指令执行成功时,将原始操作指令中的下一条指令作为当前测试操作指令,返回当前指令执行单元2042,将第一操作指令中的下一条指令作为当前标准操作指令,返回当前指令执行单元2042。
如图12所示,在一个实施例中,指令执行模块204还包括:
第一指令重发单元2046,用于当当前测试操作指令执行失败时,获取当前测试操作指令对应的第一执行失败次数,当第一执行失败次数小于等于预设阈值时,返回当前指令执行单元2042。和/或
第二指令重发单元2048,用于当当前标准操作指令执行失败时,获取当前标准操作指令对应的第二执行失败次数,当第二执行失败次数小于预设阈值时,返回当前指令执行单元2042。
如图13所示,在一个实施例中,数据获取模块206包括:
配置文件获取单元2062,用于获取配置文件,从配置文件中获取校验规则,校验规则包括全量校验和活动数据校验中的至少一种。
数据获取单元2064,用于当校验规则为全量校验时,从被测数据库获取全部数据库数据作为待校验数据,当校验规则为活动数据校验时,从被测数据库获取与原始操作指令的操作范围对应的数据库数据作为待校验数据。
如图14所示,在一个实施例中,校验模块208包括:
数据加密单元2082,用于将标准数据写入文本生成对应的标准文本,通过加密算法对标准文本进行加密得到对应的标准加密结果,将待校验数据写入文本生成对应的待校验文本,通过加密算法对待校验文本进行加密得到对应的待校验加密结果。
数据校验单元2084,用于将标准加密结果和待校验加密结果进行对比,如果标准加密结果和待校验加密结果一致,则待校验数据的数据校验结果为校验成功,否则,待校验数据的数据校验结果为校验失败。
如图15所示,在一个实施例中,数据库数据校验装置200还包括:
差异数据获取模块210,用于当数据校验结果为校验失败时,从待校验数据中获取与标准数据存在差异的差异数据。
执行策略获取模块212,用于获取被测数据库对应的指令执行策略。
数据定位模块214,用于根据差异数据和指令执行策略确定差异数据在被测数据库中的存储位置。
图16示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图10所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作指令系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现数据库数据校验方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行数据库数据校验方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的数据库数据校验装置可以实现为一种计算机程序的形式,计算机程序可在如图16所示的计算机设备上运行。计算机设备的存储器中可存储组成该数据库数据校验装置的各个程序模块,比如,图10所示的指令获取模块202、指令执行模块204、数据获取模块206和校验模块208。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的数据库数据校验方法中的步骤。
例如,图16所示的计算机设备可以通过如图10所示的数据库数据校验装置中的指令获取模块202执行获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库,计算机设备可通过指令执行模块204执行对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令,数据获取模块206执行当原始操作指令执行完毕时,根据校验规则从被测数据库获取待校验数据,当第一操作指令执行完毕时,根据校验规则从基准数据库获取对应的标准数据,数据校验模块208执行将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果。
在一个实施例中,提供一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得所述处理器执行如下步骤:获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库,对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令,当原始操作指令执行完毕时,根据校验规则从被测数据库获取待校验数据,当第一操作指令执行完毕时,根据校验规则从基准数据库获取对应的标准数据,将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果。
在一个实施例中,获取客户端的原始操作指令之后,所述计算机程序还使得处理器执行如下步骤:根据被测数据库的类型将原始操作指令解析为与被测数据库匹配的操作指令,根据基准数据库的类型将原始操作指令解析为与基准数据库匹配的第一操作指令。
在一个实施例中,原始操作指令包括多条操作指令,对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令,包括:从原始操作指令中获取测试起始操作指令作为当前测试操作指令,对被测数据库执行当前测试操作指令,从第一操作指令中获取标准起始操作指令作为当前标准操作指令,对基准数据库执行当前标准操作指令,当当前测试操作指令执行成功且当前标准操作指令执行成功时,将原始操作指令中的下一条指令作为当前测试操作指令,返回对被测数据库执行当前测试操作指令的步骤,将第一操作指令中的下一条指令作为当前标准操作指令,返回对基准数据库执行当前标准操作指令的步骤。
在一个实施例中,所述计算机程序还使得所述处理器执行如下步骤:当当前测试操作指令执行失败时,获取当前测试操作指令对应的第一执行失败次数,当第一执行失败次数小于等于预设阈值时,返回对被测数据库执行当前测试操作指令的步骤。和/或当当前标准操作指令执行失败时,获取当前标准操作指令对应的第二执行失败次数,当第二执行失败次数小于预设阈值时,返回对基准数据库执行当前标准操作指令的步骤。
在一个实施例中,根据校验规则从被测数据库获取待校验数据,包括:获取配置文件,从配置文件中获取校验规则,校验规则包括全量校验和活动数据校验中的至少一种,当校验规则为全量校验时,从被测数据库获取全部数据库数据作为待校验数据,当校验规则为活动数据校验时,从被测数据库获取与原始操作指令的操作范围对应的数据库数据作为待校验数据。
在一个实施例中,将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果,包括:将标准数据写入文本生成对应的标准文本,通过加密算法对标准文本进行加密得到对应的标准加密结果,将待校验数据写入文本生成对应的待校验文本,通过加密算法对待校验文本进行加密得到对应的待校验加密结果,将标准加密结果和待校验加密结果进行对比,如果标准加密结果和待校验加密结果一致,则待校验数据的数据校验结果为校验成功,否则,待校验数据的数据校验结果为校验失败。
在一个实施例中,所述计算机程序还使得所述处理器执行如下步骤:当数据校验结果为校验失败时,从待校验数据中获取与标准数据存在差异的差异数据,获取被测数据库对应的指令执行策略,根据差异数据和指令执行策略确定差异数据在被测数据库中的存储位置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:获取客户端的原始操作指令,获取与原始操作指令匹配的第一操作指令,以同步控制的方式将原始操作指令和第一操作指令分别发送至被测数据库和基准数据库,对被测数据库执行原始操作指令,对基准数据库以相同的时序执行第一操作指令,当原始操作指令执行完毕时,根据校验规则从被测数据库获取待校验数据,当第一操作指令执行完毕时,根据校验规则从基准数据库获取对应的标准数据,将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果。
在一个实施例中,获取客户端的原始操作指令之后,所述计算机程序还使得所述处理器执行如下步骤:根据被测数据库的类型将原始操作指令解析为与被测数据库匹配的操作指令,根据基准数据库的类型将原始操作指令解析为与基准数据库匹配的第一操作指令。
在一个实施例中,原始操作指令包括多条操作指令,所述对所述被测数据库执行所述原始操作指令,对所述基准数据库以相同的时序执行所述第一操作指令,包括:从原始操作指令中获取测试起始操作指令作为当前测试操作指令,对被测数据库执行当前测试操作指令,从第一操作指令中获取标准起始操作指令作为当前标准操作指令,对基准数据库执行当前标准操作指令,当当前测试操作指令执行成功且当前标准操作指令执行成功时,将原始操作指令中的下一条指令作为当前测试操作指令,返回对被测数据库执行当前测试操作指令的步骤,将第一操作指令中的下一条指令作为当前标准操作指令,返回对基准数据库执行当前标准操作指令的步骤。
在一个实施例中,所述计算机程序还使得所述处理器执行如下步骤:当当前测试操作指令执行失败时,获取当前测试操作指令对应的第一执行失败次数,当第一执行失败次数小于等于预设阈值时,返回对被测数据库执行当前测试操作指令的步骤。和/或当当前标准操作指令执行失败时,获取当前标准操作指令对应的第二执行失败次数,当第二执行失败次数小于预设阈值时,返回对基准数据库执行当前标准操作指令的步骤。
在一个实施例中,根据校验规则从被测数据库获取待校验数据,包括:获取配置文件,从配置文件中获取校验规则,校验规则包括全量校验和活动数据校验中的至少一种,当校验规则为全量校验时,从被测数据库获取全部数据库数据作为待校验数据,当校验规则为活动数据校验时,从被测数据库获取与原始操作指令的操作范围对应的数据库数据作为待校验数据。
在一个实施例中,将标准数据和待校验数据进行对比,根据对比结果确定待校验数据的数据校验结果,包括:将标准数据写入文本生成对应的标准文本,通过加密算法对标准文本进行加密得到对应的标准加密结果,将待校验数据写入文本生成对应的待校验文本,通过加密算法对待校验文本进行加密得到对应的待校验加密结果,将标准加密结果和待校验加密结果进行对比,如果标准加密结果和待校验加密结果一致,则待校验数据的数据校验结果为校验成功,否则,待校验数据的数据校验结果为校验失败。
在一个实施例中,所述计算机程序还使得所述处理器执行如下步骤:当数据校验结果为校验失败时,从待校验数据中获取与标准数据存在差异的差异数据,获取被测数据库对应的指令执行策略,根据差异数据和指令执行策略确定差异数据在被测数据库中的存储位置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种数据库数据校验方法,包括:
获取客户端的原始操作指令,获取与所述原始操作指令匹配的第一操作指令,以同步控制的方式将所述原始操作指令和所述第一操作指令分别发送至被测数据库和基准数据库;
对所述被测数据库执行所述原始操作指令,对所述基准数据库以相同的时序执行所述第一操作指令;
当所述原始操作指令执行完毕时,根据校验规则从所述被测数据库获取待校验数据;
当所述第一操作指令执行完毕时,根据所述校验规则从所述基准数据库获取对应的标准数据;
将所述标准数据和所述待校验数据进行对比,根据对比结果确定所述待校验数据的数据校验结果。
2.根据权利要求1所述的方法,其特征在于,所述获取客户端的原始操作指令之后,还包括:
根据所述被测数据库的类型将所述原始操作指令解析为与所述被测数据库匹配的操作指令;
所述获取与所述原始操作指令匹配的第一操作指令,包括:
根据所述基准数据库的类型将所述原始操作指令解析为与所述基准数据库匹配的所述第一操作指令。
3.根据权利要求1所述的方法,其特征在于,所述原始操作指令包括多条操作指令,所述对所述被测数据库执行所述原始操作指令,对所述基准数据库以相同的时序执行所述第一操作指令,包括:
从所述原始操作指令中获取测试起始操作指令作为当前测试操作指令,对所述被测数据库执行所述当前测试操作指令;
从所述第一操作指令中获取标准起始操作指令作为所述当前标准操作指令,对所述基准数据库执行所述当前标准操作指令;
当所述当前测试操作指令执行成功且所述当前标准操作指令执行成功时,将所述原始操作指令中的下一条指令作为所述当前测试操作指令,返回对所述被测数据库执行所述当前测试操作指令的步骤;
将所述第一操作指令中的下一条指令作为当前标准操作指令,返回对所述基准数据库执行所述当前标准操作指令的步骤。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述当前测试操作指令执行失败时,获取所述当前测试操作指令对应的第一执行失败次数,当所述第一执行失败次数小于等于预设阈值时,返回对所述被测数据库执行所述当前测试操作指令的步骤;和/或
当所述当前标准操作指令执行失败时,获取所述当前标准操作指令对应的第二执行失败次数,当所述第二执行失败次数小于所述预设阈值时,返回对所述基准数据库执行所述当前标准操作指令的步骤。
5.根据权利要求1所述的方法,其特征在于,所述根据校验规则从所述被测数据库获取待校验数据,包括:
获取配置文件,从所述配置文件中获取所述校验规则,所述校验规则包括全量校验和活动数据校验中的至少一种;
当所述校验规则为所述全量校验时,从所述被测数据库获取全部数据库数据作为所述待校验数据;
当所述校验规则为所述活动数据校验时,从所述被测数据库获取与所述原始操作指令的操作范围对应的数据库数据作为所述待校验数据。
6.根据权利要求1所述的方法,其特征在于,所述将所述标准数据和所述待校验数据进行对比,根据对比结果确定所述待校验数据的数据校验结果,包括:
将所述标准数据写入文本生成对应的标准文本,通过加密算法对所述标准文本进行加密得到对应的标准加密结果;
将所述待校验数据写入文本生成对应的待校验文本,通过加密算法对所述待校验文本进行加密得到对应的待校验加密结果;
将所述标准加密结果和所述待校验加密结果进行对比,如果所述标准加密结果和所述待校验加密结果一致,则所述待校验数据的数据校验结果为校验成功,否则,所述待校验数据的数据校验结果为校验失败。
7.根据权利要求1至6任一项所述的方法,其特征在于,根据对比结果确定所述待校验数据的数据校验结果之后,包括:
当所述数据校验结果为校验失败时,从所述待校验数据中获取与所述标准数据存在差异的差异数据;
获取所述被测数据库对应的指令执行策略;
根据所述差异数据和所述指令执行策略确定所述差异数据在所述被测数据库中的存储位置。
8.一种数据库测试装置,其特征在于,所述装置包括:
指令发送模块,用于获取客户端的原始操作指令,获取与所述原始操作指令匹配的第一操作指令,以同步控制的方式将所述原始操作指令和所述第一操作指令分别发送至被测数据库和基准数据库;
指令执行模块,用于对所述被测数据库执行所述原始操作指令,对所述基准数据库以相同的时序执行所述第一操作指令;
数据获取模块,用于当所述原始操作指令执行完毕时,根据校验规则从所述被测数据库获取待校验数据,当所述第一操作指令执行完毕时,根据所述校验规则从所述基准数据库获取对应的标准数据;
数据校验模块,用于将所述标准数据和所述待校验数据进行对比,根据对比结果确定所述待校验数据的数据校验结果。
9.根据权利要求8所述的装置,其特征在于,所述指令发送模块还用于根据所述被测数据库的类型将所述原始操作指令解析为与所述被测数据库匹配的操作指令,根据所述基准数据库的类型将所述原始操作指令解析为与所述基准数据库匹配的所述第一操作指令。
10.根据权利要求8所述的装置,其特征在于,所述指令执行模块包括:
当前指令执行单元,用于从所述原始操作指令中获取测试起始操作指令作为当前测试操作指令,对所述被测数据库执行所述当前测试操作指令,从所述第一操作指令中获取标准起始操作指令作为当前标准操作指令,对所述基准数据库执行所述当前标准操作指令;
下一条指令执行单元,用于当所述当前测试操作指令执行成功且所述当前标准操作指令执行成功时,将所述原始操作指令中的下一条指令作为所述当前测试操作指令,返回所述当前指令执行单元,将所述第一操作指令中的下一条指令作为所述当前标准操作指令,返回所述当前指令执行单元。
11.根据权利要求8所述的装置,其特征在于,所述数据获取模块包括:
配置文件获取单元,用于获取配置文件,从所述配置文件中获取所述校验规则,所述校验规则包括全量校验和活动数据校验中的至少一种;
数据获取单元,用于当所述校验规则为所述全量校验时,从所述被测数据库获取全部数据库数据作为所述待校验数据,当所述校验规则为所述活动数据校验时,从所述被测数据库获取与所述原始操作指令的操作范围对应的数据库数据作为所述待校验数据。
12.根据权利要求8所述的装置,其特征在于,所述校验模块包括:
数据加密单元,用于将所述标准数据写入文本生成对应的标准文本,通过加密算法对所述标准文本进行加密得到对应的标准加密结果,将所述待校验数据写入文本生成对应的待校验文本,通过加密算法对所述待校验文本进行加密得到对应的待校验加密结果;
数据校验单元,用于将所述标准加密结果和所述待校验加密结果进行对比,如果所述标准加密结果和所述待校验加密结果一致,则所述待校验数据的数据校验结果为校验成功,否则,所述待校验数据的数据校验结果为校验失败。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
差异数据获取模块,用于当所述数据校验结果为校验失败时,从所述待校验数据中获取与所述标准数据存在差异的差异数据;
执行策略获取模块,用于获取所述被测数据库对应的指令执行策略;
数据定位模块,用于根据所述差异数据和所述指令执行策略确定所述差异数据在所述被测数据库中的存储位置。
14.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810146061.7A CN108319719B (zh) | 2018-02-12 | 2018-02-12 | 数据库数据校验方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810146061.7A CN108319719B (zh) | 2018-02-12 | 2018-02-12 | 数据库数据校验方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108319719A true CN108319719A (zh) | 2018-07-24 |
CN108319719B CN108319719B (zh) | 2022-04-01 |
Family
ID=62903619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810146061.7A Active CN108319719B (zh) | 2018-02-12 | 2018-02-12 | 数据库数据校验方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108319719B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271326A (zh) * | 2018-11-28 | 2019-01-25 | 优刻得科技股份有限公司 | 云数据库的测试方法及其装置、设备和存储介质 |
CN109324960A (zh) * | 2018-08-13 | 2019-02-12 | 中国平安人寿保险股份有限公司 | 基于大数据分析的自动测试方法及终端设备 |
CN109597802A (zh) * | 2018-12-07 | 2019-04-09 | 江苏满运软件科技有限公司 | 数据库断言数据生成方法、系统、设备以及介质 |
CN109800104A (zh) * | 2018-12-18 | 2019-05-24 | 盛科网络(苏州)有限公司 | 数据存储的检测方法、装置、存储介质及电子装置 |
CN110297842A (zh) * | 2019-06-25 | 2019-10-01 | 武汉联影医疗科技有限公司 | 一种数据比对方法、装置、终端和存储介质 |
CN111367943A (zh) * | 2018-12-26 | 2020-07-03 | 中兴通讯股份有限公司 | 数据传送的校验方法、系统、计算机设备及存储介质 |
CN111611253A (zh) * | 2020-04-01 | 2020-09-01 | 石化盈科信息技术有限责任公司 | 数据校验方法、设备和存储介质 |
CN112347068A (zh) * | 2020-11-03 | 2021-02-09 | 国网宁夏电力有限公司信息通信公司 | 基于elk的日志分析方法及系统 |
CN112380046A (zh) * | 2020-11-10 | 2021-02-19 | 北京灵汐科技有限公司 | 计算结果校验方法、系统、装置、设备及存储介质 |
CN112506900A (zh) * | 2020-11-27 | 2021-03-16 | 中广核工程有限公司 | 核电厂通风管三维数据检查方法、装置、设备及存储介质 |
CN112667573A (zh) * | 2020-12-23 | 2021-04-16 | 国网宁夏电力有限公司信息通信公司 | 冗余日志删除方法及系统 |
CN113515579A (zh) * | 2021-06-17 | 2021-10-19 | 自然资源部地图技术审查中心 | 一种界峰数据的筛查方法及装置 |
CN114153830A (zh) * | 2021-12-01 | 2022-03-08 | 北京金堤科技有限公司 | 数据验证方法及其装置、计算机存储介质、电子设备 |
CN114428489A (zh) * | 2022-01-29 | 2022-05-03 | 苏州赛美特科技有限公司 | 一种作业设备控制方法及其系统 |
CN114676126A (zh) * | 2022-05-30 | 2022-06-28 | 深圳钛铂数据有限公司 | 基于数据库的数据校验方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727383A (zh) * | 2008-10-16 | 2010-06-09 | 上海市医疗保险信息中心 | 数据库的仿真测试方法和系统 |
CN103793328A (zh) * | 2014-02-24 | 2014-05-14 | 浪潮电子信息产业股份有限公司 | 一种使用自动化程序完成数据库性能测试的方法 |
CN104252481A (zh) * | 2013-06-27 | 2014-12-31 | 阿里巴巴集团控股有限公司 | 主从数据库一致性的动态校验方法和装置 |
CN104483842A (zh) * | 2014-10-24 | 2015-04-01 | 国网北京市电力公司 | 一种调控一体自动化主站比对方法 |
-
2018
- 2018-02-12 CN CN201810146061.7A patent/CN108319719B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727383A (zh) * | 2008-10-16 | 2010-06-09 | 上海市医疗保险信息中心 | 数据库的仿真测试方法和系统 |
CN104252481A (zh) * | 2013-06-27 | 2014-12-31 | 阿里巴巴集团控股有限公司 | 主从数据库一致性的动态校验方法和装置 |
CN103793328A (zh) * | 2014-02-24 | 2014-05-14 | 浪潮电子信息产业股份有限公司 | 一种使用自动化程序完成数据库性能测试的方法 |
CN104483842A (zh) * | 2014-10-24 | 2015-04-01 | 国网北京市电力公司 | 一种调控一体自动化主站比对方法 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324960A (zh) * | 2018-08-13 | 2019-02-12 | 中国平安人寿保险股份有限公司 | 基于大数据分析的自动测试方法及终端设备 |
CN109271326A (zh) * | 2018-11-28 | 2019-01-25 | 优刻得科技股份有限公司 | 云数据库的测试方法及其装置、设备和存储介质 |
CN109597802A (zh) * | 2018-12-07 | 2019-04-09 | 江苏满运软件科技有限公司 | 数据库断言数据生成方法、系统、设备以及介质 |
CN109800104A (zh) * | 2018-12-18 | 2019-05-24 | 盛科网络(苏州)有限公司 | 数据存储的检测方法、装置、存储介质及电子装置 |
US11544141B2 (en) | 2018-12-18 | 2023-01-03 | Suzhou Centec Communications Co., Ltd. | Data storage detection method and apparatus, storage medium and electronic apparatus |
CN111367943A (zh) * | 2018-12-26 | 2020-07-03 | 中兴通讯股份有限公司 | 数据传送的校验方法、系统、计算机设备及存储介质 |
CN110297842A (zh) * | 2019-06-25 | 2019-10-01 | 武汉联影医疗科技有限公司 | 一种数据比对方法、装置、终端和存储介质 |
CN110297842B (zh) * | 2019-06-25 | 2021-10-15 | 武汉联影医疗科技有限公司 | 一种数据比对方法、装置、终端和存储介质 |
CN111611253A (zh) * | 2020-04-01 | 2020-09-01 | 石化盈科信息技术有限责任公司 | 数据校验方法、设备和存储介质 |
CN111611253B (zh) * | 2020-04-01 | 2023-08-08 | 石化盈科信息技术有限责任公司 | 数据校验方法、设备和存储介质 |
CN112347068A (zh) * | 2020-11-03 | 2021-02-09 | 国网宁夏电力有限公司信息通信公司 | 基于elk的日志分析方法及系统 |
CN112380046A (zh) * | 2020-11-10 | 2021-02-19 | 北京灵汐科技有限公司 | 计算结果校验方法、系统、装置、设备及存储介质 |
CN112380046B (zh) * | 2020-11-10 | 2023-12-22 | 北京灵汐科技有限公司 | 计算结果校验方法、系统、装置、设备及存储介质 |
CN112506900A (zh) * | 2020-11-27 | 2021-03-16 | 中广核工程有限公司 | 核电厂通风管三维数据检查方法、装置、设备及存储介质 |
CN112667573A (zh) * | 2020-12-23 | 2021-04-16 | 国网宁夏电力有限公司信息通信公司 | 冗余日志删除方法及系统 |
CN113515579A (zh) * | 2021-06-17 | 2021-10-19 | 自然资源部地图技术审查中心 | 一种界峰数据的筛查方法及装置 |
CN113515579B (zh) * | 2021-06-17 | 2024-01-19 | 自然资源部地图技术审查中心 | 一种界峰数据的筛查方法及装置 |
CN114153830B (zh) * | 2021-12-01 | 2023-03-28 | 北京金堤科技有限公司 | 数据验证方法及其装置、计算机存储介质、电子设备 |
CN114153830A (zh) * | 2021-12-01 | 2022-03-08 | 北京金堤科技有限公司 | 数据验证方法及其装置、计算机存储介质、电子设备 |
CN114428489A (zh) * | 2022-01-29 | 2022-05-03 | 苏州赛美特科技有限公司 | 一种作业设备控制方法及其系统 |
CN114428489B (zh) * | 2022-01-29 | 2024-01-23 | 赛美特科技有限公司 | 一种作业设备控制方法及其系统 |
CN114676126A (zh) * | 2022-05-30 | 2022-06-28 | 深圳钛铂数据有限公司 | 基于数据库的数据校验方法、装置、设备及存储介质 |
CN114676126B (zh) * | 2022-05-30 | 2022-08-09 | 深圳钛铂数据有限公司 | 基于数据库的数据校验方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108319719B (zh) | 2022-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108319719A (zh) | 数据库数据校验方法、装置、计算机设备和存储介质 | |
CN108628743B (zh) | 应用程序测试方法、装置、设备及存储介质 | |
CN107894952A (zh) | 接口测试用例的生成方法、装置、设备及可读存储介质 | |
CN109274685A (zh) | 多系统登录方法、装置、计算机设备和存储介质 | |
CN110221983A (zh) | 测试方法、装置、计算机可读存储介质和计算机设备 | |
CN111475324B (zh) | 日志信息的分析方法、装置、计算机设备和存储介质 | |
CN109299010A (zh) | mock测试方法、装置、计算机设备和存储介质 | |
CN110134795A (zh) | 生成验证问题组的方法、装置、计算机设备和存储介质 | |
CN110266656A (zh) | 免密认证身份识别方法、装置及计算机设备 | |
CN109587154A (zh) | 数字身份验证方法、装置、计算机设备和存储介质 | |
CN109831310A (zh) | 一种身份验证方法、系统及相关装置 | |
CN109543073A (zh) | 企业供销关系图谱生成方法、装置和计算机设备 | |
CN109886662A (zh) | 区块链钱包应用方法及系统、终端和计算机可读存储介质 | |
CN109582583A (zh) | 软件测试方法、装置、计算机设备和存储介质 | |
CN108763888A (zh) | 用户档案处理方法、装置、计算机设备和存储介质 | |
CN110020550A (zh) | 核对平台的评估方法、装置及设备 | |
CN104601532B (zh) | 一种登录账户的方法及装置 | |
CN109522206B (zh) | 异常数据定位方法、装置、计算机设备及存储介质 | |
KR20180012761A (ko) | 전자 회로에 고유한 값을 생성하는 방법, 이 값을 생성하는 전자 회로 및 이 값을 사용하는 방법 | |
CN109669829A (zh) | 一种基于bmc的诊断调试方法、装置及服务器 | |
CN112468356B (zh) | 路由器接口测试方法、装置、电子设备和存储介质 | |
CN112015648A (zh) | 基于自动化脚本的测试方法、装置、计算机设备和介质 | |
Matos et al. | Enhancing privacy protection in fault replication systems | |
CN112737942A (zh) | 服务路由切换方法、装置、设备及介质 | |
CN115829186B (zh) | 基于人工智能的erp管理方法及数据处理ai系统 |
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 |