CN117215956A - 数据库同步测试的方法、装置、设备和存储介质 - Google Patents
数据库同步测试的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN117215956A CN117215956A CN202311284383.5A CN202311284383A CN117215956A CN 117215956 A CN117215956 A CN 117215956A CN 202311284383 A CN202311284383 A CN 202311284383A CN 117215956 A CN117215956 A CN 117215956A
- Authority
- CN
- China
- Prior art keywords
- data table
- database
- synchronous
- source
- source data
- 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
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 174
- 238000012360 testing method Methods 0.000 title claims abstract description 134
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013515 script Methods 0.000 claims abstract description 161
- 230000006870 function Effects 0.000 claims abstract description 28
- 230000002159 abnormal effect Effects 0.000 claims abstract description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 239000002245 particle Substances 0.000 claims description 4
- 238000001514 detection method Methods 0.000 abstract description 4
- 238000012795 verification Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 6
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种数据库同步测试的方法、装置、设备和存储介质,方法包括,生成包含源数据表标识的测试脚本和包含同步数据表标识的查询脚本;测试脚本用于更新源数据表,查询脚本用于查询同步数据表,源数据表指代源数据表标识对应的数据表,同步数据表质点同步数据表标识对应的数据表;通过执行测试脚本更新源数据表;执行查询脚本,得到同步数据表的查询结果;根据查询结果确定源数据库和同步数据库的数据库同步功能是否异常;源数据库为源数据表所属数据库,同步数据库为同步数据表所属数据库。本方案通过生成并执行脚本,自动检验源数据库和同步数据库之间的数据库同步功能是否正常,相比于现有人工检测的方案,提高了测试效率。
Description
技术领域
本申请属于数据库测试技术领域,尤其涉及一种数据库同步测试的方法、装置、设备和存储介质。
背景技术
在数据库同步测试场景下,一般采用人工抽样方法,受人力、时间等成本的限制无法做到大规模、全面测试,不能保证产品质量。
发明内容
针对上述现有技术的问题,本申请提供一种数据库同步测试的方法、装置、设备和存储介质,以提供一种自动进行数据库同步测试的方案。
本申请第一方面提供一种数据库同步测试的方法,包括:
获得源数据表标识和同步数据表标识;
生成包含所述源数据表标识的测试脚本和包含所述同步数据表标识的查询脚本;其中,所述测试脚本用于更新源数据表,所述查询脚本用于查询同步数据表,所述源数据表指代所述源数据表标识对应的数据表,所述同步数据表质点所述同步数据表标识对应的数据表;
通过执行所述测试脚本更新所述源数据表;
执行所述查询脚本,得到所述同步数据表的查询结果;
根据所述查询结果确定源数据库和同步数据库的数据库同步功能是否异常;其中,所述源数据库为所述源数据表所属数据库,所述同步数据库为所述同步数据表所属数据库。
可选的,所述获得源数据表标识和同步数据表标识之后,还包括:
校验所述源数据库中是否存在所述源数据表标识对应的数据表;
校验所述同步数据库中是否存在所述同步数据表标识对应的数据表;
若所述源数据表标识和所述同步数据表标识中至少一者不存在对应的数据表,输出第一提示信息,所述第一提示信息用于提示修改所述源数据表标识和所述同步数据表标识中至少一者。
可选的,所述生成包含所述源数据表标识的测试脚本和包含所述同步数据表标识的查询脚本,包括:
生成用于更新所述源数据表的更新参数;
基于所述更新参数,所述源数据表标识和预设的指令模板,生成包含所述源数据表标识的测试脚本;
基于所述更新参数,所述同步数据表标识和预设的指令模板,生成包含所述同步数据表标识的查询脚本。
可选的,所述通过执行所述测试脚本更新所述源数据表之前,还包括:
根据所述源数据库的登录信息和所述同步数据库的登录信息,分别登录所述源数据库和所述同步数据库。
本申请第二方面提供一种数据库同步测试的装置,包括:
获得单元,用于获得源数据表标识和同步数据表标识;
生成单元,用于生成包含所述源数据表标识的测试脚本和包含所述同步数据表标识的查询脚本;其中,所述测试脚本用于更新源数据表,所述查询脚本用于查询同步数据表,所述源数据表指代所述源数据表标识对应的数据表,所述同步数据表质点所述同步数据表标识对应的数据表;
更新单元,用于通过执行所述测试脚本更新所述源数据表;
查询单元,用于执行所述查询脚本,得到所述同步数据表的查询结果;
确定单元,用于根据所述查询结果确定源数据库和同步数据库的数据库同步功能是否异常;其中,所述源数据库为所述源数据表所属数据库,所述同步数据库为所述同步数据表所属数据库。
可选的,所述获得单元还用于:
校验所述源数据库中是否存在所述源数据表标识对应的数据表;
校验所述同步数据库中是否存在所述同步数据表标识对应的数据表;
若所述源数据表标识和所述同步数据表标识中至少一者不存在对应的数据表,输出第一提示信息,所述第一提示信息用于提示修改所述源数据表标识和所述同步数据表标识中至少一者。
可选的,所述生成单元生成包含所述源数据表标识的测试脚本和包含所述同步数据表标识的查询脚本时,具体用于:
生成用于更新所述源数据表的更新参数;
基于所述更新参数,所述源数据表标识和预设的指令模板,生成包含所述源数据表标识的测试脚本;
基于所述更新参数,所述同步数据表标识和预设的指令模板,生成包含所述同步数据表标识的查询脚本。
可选的,所述装置还包括登录单元,用于:
根据所述源数据库的登录信息和所述同步数据库的登录信息,分别登录所述源数据库和所述同步数据库。
本申请第三方面提供一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,具体用于实现本申请第一方面任意一项所提供的数据库同步测试的方法。
本申请第四方面提供一种电子设备,包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,具体用于实现本申请第一方面任意一项所提供的数据库同步测试的方法。
本申请提供一种数据库同步测试的方法、装置、设备和存储介质,方法包括,获得源数据表标识和同步数据表标识;生成包含源数据表标识的测试脚本和包含同步数据表标识的查询脚本;其中,测试脚本用于更新源数据表,查询脚本用于查询同步数据表,源数据表指代源数据表标识对应的数据表,同步数据表质点同步数据表标识对应的数据表;通过执行测试脚本更新源数据表;执行查询脚本,得到同步数据表的查询结果;根据查询结果确定源数据库和同步数据库的数据库同步功能是否异常;其中,源数据库为源数据表所属数据库,同步数据库为同步数据表所属数据库。本方案通过生成并执行脚本,自动检验源数据库和同步数据库之间的数据库同步功能是否正常,相比于现有人工检测的方案,提高了测试效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请实施例提供的一种数据库同步测试的方法的流程图;
图2是本申请实施例提供的一种数据库同步测试的装置的结构示意图;
图3是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
数据库同步,是指两个数据库之间建立数据的一致性,并且能够自动从源数据库复制数据记录的变动到同步数据库,其中数据记录的变动包括插入、更改、删除。
针对现有数据库同步测试依赖人工抽样的问题,本申请提供一种数据库同步验证的方案,根据用户输入的源数据库、同步数据库信息自动完成数据库同步验证测试,并生成测试报告供用户使用,大幅度提高测试效率和质量。
本方案的基本原理如下,用户输入源数据库和同步数据库的信息,校验信息正确后,开始生成同步验证脚本并自动执行,最终生成同步验证测试报告。该方法与装置作为一种测试辅助全自动化开展数据库同步验证提升测试效率。
本申请实施例实现了数据库同步测试的方法,该方法包括校验,生成,执行和验证等环节。在校验环节,可以根据输入的源、同步数据库信息进行数据库连接、表存在性校验;在生成环节,可以获取表结构,根据表结构中对应每个字段生成随机值,最终生成用于更新源数据表的测试脚本和用于查询同步数据表的查询脚本;在执行环节,可以一一执行测试脚本,从而在源数据表中新增(insert),修改(update)和删除(delete)数据;在验证环节,可以查询同步表是否同步进行新增(insert),修改(update)和删除(delete)数据,从而验证数据库同步功能是否正常。
请参见图1,为本申请实施例提供的一种数据库同步测试的方法的流程图,该方法可以包括如下步骤。
S101,获得源数据表标识和同步数据表标识。
源数据表标识,可以是源数据表的表名称(SourceTableName),也可以是其他能够在源数据库中唯一标识出源数据表的信息,同步数据表标识,可以是同步数据表的表名称(SynTableName),也可以是其他能够在同步数据库中唯一标识出同步数据表的信息。
源数据表,可以是源数据库中的任意一个数据表,同步数据表,为同步数据库中用于同步源数据表中数据的数据表,在源数据库和同步数据库之间的数据库同步功能正常工作时,源数据表和同步数据表记录的数据相同,并且任何对源数据表的更新,包括新增数据、删除数据和更新数据,都会通过数据库同步功能同步应用于同步数据表。例如,在源数据表中新增一条数据A,数据库同步功能会将该数据A同时新增到同步数据表。
一般的,源数据表标识和同步数据表标识可以相同,两者之间通过所属数据库的不同来区分。
源数据表标识和同步数据表标识的一种获得方式可以是,接收用户输入的源数据表标识和同步数据表标识。
源数据表标识和同步数据表标识的另一种获得方式可以是,在源数据库的多个数据表中选择任意一个或多个作为源数据表,将选中的表的标识确定为源数据表标识,然后将同步数据库中和源数据表同步的一个或多个数据表选中为同步数据表,对应的标识确定为同步数据表标识。
可选的,按前一种方式获得源数据表标识和同步数据表标识时,为了避免后续步骤出错,可以在执行S102之前先执行如下的校验过程:
校验源数据库中是否存在源数据表标识对应的数据表;
校验同步数据库中是否存在同步数据表标识对应的数据表;
若源数据表标识和同步数据表标识中至少一者不存在对应的数据表,输出第一提示信息,第一提示信息用于提示修改源数据表标识和同步数据表标识中至少一者。
也就是说,如果经过校验,发现源数据库中不存在源数据表标识对应的数据表,和/或发现同步数据库中不存在同步数据表标识对应的数据表,就表明当前获得的源数据表标识和同步数据表标识无效,此时通过输出第一提示信息,可以提示用户输入正确的标识。
如果经过校验,发现源数据库中存在源数据表标识对应的数据表,并且同步数据库中存在同步数据表标识对应的数据表,则执行步骤S102。
S102,生成包含源数据表标识的测试脚本和包含同步数据表标识的查询脚本。
其中,测试脚本用于更新源数据表,查询脚本用于查询同步数据表,源数据表指代源数据表标识对应的数据表,同步数据表质点同步数据表标识对应的数据表。
可选的,步骤S102的具体执行过程可以包括:
A1,生成用于更新源数据表的更新参数;
A2,基于更新参数,源数据表标识和预设的指令模板,生成包含源数据表标识的测试脚本;
A3,基于更新参数,同步数据表标识和预设的指令模板,生成包含同步数据表标识的查询脚本。
对源数据表的更新可以有多种方式,包括但不限于增加新数据、删除原有数据和修改原有数据,对应的,S102生成的测试脚本,可以包括用于增加新数据的第一测试脚本,用于修改原有数据的第二测试脚本和用于删除原有数据的第三测试脚本。
对应的,查询脚本可以包括,用于在增加新数据后查询的第一查询脚本,用于在修改原有数据后查询的第二查询脚本和用于在删除原有数据后查询的第三查询脚本。
在步骤A1中,更新参数可以随机生成,也可以按照源数据表中各字段的属性来生成,例如根据字段名、字段类型和字段长度中任意一项或多项生成。
在步骤A2中,可以基于源数据表标识,在源数据库中查找出源数据表,读取源数据表中字段的字段名,然后将源数据表标识,字段名和更新参数填入预设的指令模板,获得测试脚本。
这里的指令模板根据源数据库和同步数据库所采用的数据库语言的不同而不同,例如,当源数据库和同步数据库为基于结构化查询语言(Structured Query Language,SQL)的SQL数据库时,步骤A2和A3中的指令模板可以是基于SQL的语法规则而预先设定的SQL语句模板,在模板中填入上述信息后,就可以得到可以实际执行的SQL语句,至少一条语句组成的可执行脚本,就是本实施例中的测试脚本和查询脚本。
在步骤A2中,通过设置不同的指令模板,产生不同功能的测试脚本,例如,将源数据表标识,字段名和更新参数填入新增模板,可以得到用于增加新数据的指令,这些指令组成的脚本就是第一测试脚本,类似的,将上述信息分别填入修改模板和删除模板,就可以得到由对应指令组成的第二测试脚本和第三测试脚本。
需要说明,填入不同指令模板中的更新参数可以相同,也可以不同。
在步骤A3中,可以基于同步数据表标识,在同步数据库中查找出同步数据表,读取同步数据表中字段的字段名,然后将同步数据表标识,字段名和更新参数填入预设的指令模板,获得测试脚本。
和步骤A2类似,在A3中,针对不同的查询脚本,可以设置不同的指令模板,然后向其中填入同步数据表的标识(例如名称)、字段和更新参数,获得由相应指令组成的查询脚本。
S103,通过执行测试脚本更新源数据表。
执行S103和S104需要访问源数据库和同步数据库,因此,在执行这两个步骤前,可以先通过如下方式分别登录源数据库和同步数据库:
根据源数据库的登录信息和同步数据库的登录信息,分别登录源数据库和同步数据库。
源数据库的登录信息,可以包括源数据库的地址(SourceDataUrl),用户名(SourceDataUser)和登录密码(SourceDataPsw),同步数据库的登录信息,可以包括同步数据库的地址(SynDataUrl),用户名(SynDataUser)和登录密码(SynDataPsw)。
S104,执行查询脚本,得到同步数据表的查询结果。
测试脚本和查询脚本均可以有多个,当有多个测试脚本和多个查询脚本时,步骤S103和S104的执行方式可以是,每执行一个测试脚本后,就执行一次对应的查询脚本,获得一份查询结果,然后再执行下一个测试脚本,以及下一个测试脚本对应的查询脚本,获得下一份查询结果,以此类推,直至执行完全部测试脚本和查询脚本。
S105,根据查询结果确定源数据库和同步数据库的数据库同步功能是否异常。
其中,源数据库为源数据表所属数据库,同步数据库为同步数据表所属数据库。
在步骤S105中,可以判断查询结果和测试脚本的更新内容是否匹配,如果匹配,说明数据库同步功能正常,执行测试脚本后对源数据表的更新,被同步应用于同步数据表上,如果不匹配,说明数据库同步功能异常,执行测试脚本后对源数据表的更新,未被同步应用于同步数据表上。
示例性的,对于在源数据库中增加新数据的测试脚本,其被执行后会在源数据表中增加特定的新数据,那么在执行完该测试脚本后,如果对同步数据表执行查询脚本获得的查询结果包含相同的新数据,就表示查询结果和测试脚本的更新内容匹配,测试脚本在源数据表中新增的数据通过数据库同步功能同步新增到了同步数据表中,由此可以确定数据库同步功能正常,反之,两者不匹配则说明数据库同步功能异常。
为了便于理解本申请实施例提供的数据库同步测试的方法,下面结合一个具体示例说明该方法的执行过程。
本示例中,源数据库和同步数据库均为SQL数据库。
首先执行S101,通过用户输入的方式,获得源数据库的登录信息和源数据表标识(SourceTableName),以及获得同步数据库的登录信息和同步数据表标识。
在执行S102时,为了根据源数据表中字段的属性生成更新参数(相当于步骤A1),可以在利用登录信息分别登录到源数据库和同步数据库后,根据源数据表标识可以在源数据库中查询到源数据表,进而获取到源数据表中字段的属性,获取到的各字段的属性可以记录在数组AllKeys[N]之中,源数据表的主键可以记录在数组PrimaryKeys[M]中。AllKeys[N]记录的属性包含字段名、字段类型和字段长度。
然后基于AllKeys[N]和PrimaryKeys[M],可以通过执行如下代码生成一组更新参数:
Fori=1to NUM;
Forj=1to N;
InsertValues[j]=random(AllKeys[j]);
上述代码表示根据AllKeys[j]中字段的属性,随机生成一组更新参数InsertValues[j],该组更新参数用于生成第一测试脚本和对应的第一查询脚本。
通过执行如下代码可以生成另一组更新参数:
Fori=1to NUM;
Forj=1to N;
If(AllKeys[j]is notinPrimaryKeys[M]);
UpdateValues[j]=random(AllKeys[j]);
上述代码表示,根据源数据表中不属于主键的字段的属性,随机生成另一组更新参数UpdateValues[j],该组更新参数用于生成第二测试脚本和对应的第二测试脚本。
获得上述更新参数后,可以分别执行步骤A2和A3,以获得测试脚本和查询脚本。
NUM为预设的SQL语句的条数。
本示例中,A2的执行过程可以包括:
将AllKeys[j]中的字段名,InsertValues[j]中的更新参数,以及源数据表标识添加到用于添加新数据的SQL语句模板(相当于前述预设的指令模板)中,获得如下的SQL语句:
insert into SourceTableName(AllKeys[1],AllKeys[2]...AllKeys[N])values(InsertValues[1],InsertValues[2]...InsertValues[N])。
包含上述语句的脚本,就是用于在源数据表中新增数据的第一测试脚本。
将AllKeys[j]中的字段名,UpdateValues[j]中的更新参数,以及源数据表标识添加到用于修改原有数据的SQL语句模板中,获得如下的SQL语句:
update SourceTableName set AllKeys[1]=UpdateValues[1],AllKeys[2]=UpdateValues[2],...AllKeys[N]=UpdateValues[N]。
包含上述语句的脚本,就是用于在源数据表中修改原有数据的第二测试脚本。
将AllKeys[j]中的字段名,UpdateValues[j]中的更新参数,以及源数据表标识添加到用于修改原有数据的SQL语句模板中,获得如下的SQL语句:
Delete from SourceTableName where AllKeys[1]=UpdateValues[1],AllKeys[2]=UpdateValues[2],...AllKeys[N]=UpdateValues[N]。
包含上述语句的脚本,就是用于在源数据表中删除原有数据的第三测试脚本。
A3的执行过程可以包括:
将AllKeys[j]中的字段名,InsertValues[j]中的更新参数,以及同步数据表标识添加到用于查询数据的SQL语句模板中,获得如下的SQL语句:
Select*from SynTableName where AllKeys[1]=InsertValues[1],AllKeys[2]=InsertValues[2]...AllKeys[N]=InsertValues[N]。
包含上述语句的脚本,就是在向源数据表新增数据后,用于查询同步数据表的第一查询脚本。
将AllKeys[j]中的字段名,UpdateValues[j]中的更新参数,以及源数据表标识添加到用于修改原有数据的SQL语句模板中,获得如下的SQL语句:
Select*from SynTableName where AllKeys[1]=UpdateValues[1],AllKeys[2]=UpdateValues[2]...AllKeys[N]=UpdateValues[N]。
包含上述语句的脚本,就是在修改源数据表原有数据后,用于查询同步数据表的第二查询脚本。
获得上述测试脚本和查询脚本后,就可以按执行步骤S103至S105。具体的,可以先执行第一测试脚本,在源数据表中加入InsertValues[j]内的更新参数(相当于执行一次S103),然后执行第一查询脚本,获得同步数据表的第一查询结果(相当于执行一次S104);之后,执行第二测试脚本,将源数据表中之前加入的数据修改为数组UpdateValues[j]中的更新参数(相当于再次执行S103),接着执行第二查询脚本,获得同步数据表的第二查询结果(相当于再次执行S104);最后执行第三测试脚本,删除之前加入源数据表的数据。
按上述过程执行完测试脚本和查询脚本后,就可以执行S105,比对新增至源数据表的数据(即InsertValues[j]内的更新参数)和第一查询结果是否一致,以及比对修改后源数据表的数据(即UpdateValues[j]中的更新参数)和第二查询结果是否一致,如果均一致,则确定数据库同步功能正常,如果不一致,则确定数据库同步功能异常。
在一些可选的实施例中,也可以生成用于查询源数据表的源查询脚本。在执行S105时,可以执行源查询脚本获得源数据表的查询结果,通过比对源数据表的查询结果和同步数据表的查询结果来判断数据库同步功能是否正常。
这种情况下,续接上述示例,生成的用于源查询脚本可以包括:
Select*from SourceTableName where AllKeys[1]=InsertValues[1],AllKeys[2]=InsertValues[2]...AllKeys[N]=InsertValues[N]。
Select*from SourceTableName where AllKeys[1]=UpdateValues[1],AllKeys[2]=UpdateValues[2]...AllKeys[N]=UpdateValues[N]。
在一些可选的实施例中,执行S105之后,可以基于比对的结果生成测试报告,并显示测试报告。该测试报告中可以显示测试脚本中的成功语句,失败语句和成功语句的数量。
成功语句,是指,该语句对源数据表的更新操作,被成功同步到同步数据表;失败语句,是指该语句对源数据表的更新操作,未被同步到同步数据表。
本申请提供一种数据库同步测试的方法,方法包括,获得源数据表标识和同步数据表标识;生成包含源数据表标识的测试脚本和包含同步数据表标识的查询脚本;其中,测试脚本用于更新源数据表,查询脚本用于查询同步数据表,源数据表指代源数据表标识对应的数据表,同步数据表质点同步数据表标识对应的数据表;通过执行测试脚本更新源数据表;执行查询脚本,得到同步数据表的查询结果;根据查询结果确定源数据库和同步数据库的数据库同步功能是否异常;其中,源数据库为源数据表所属数据库,同步数据库为同步数据表所属数据库。本方案通过生成并执行脚本,自动检验源数据库和同步数据库之间的数据库同步功能是否正常,相比于现有人工检测的方案,提高了测试效率。
一方面,本实施例的方法提升数据库同步验证测试的准确性和全面性,使用自动化方式替代人工抽样测试,减少人工抽样测试的操作失误风险和遗漏概率;另一方面,本实施例的方法提高测试效率效率,目前数据库同步验证测试应用场景下效率不理想,本实施例的方法通过全自动化执行的手段提高测试效率,并能实现大规模大数量的测试;再一方面,本实施例的方法按照增、改、删的顺序执行验证同步,生成的数据最终会删掉,不会生产脏数据。
根据本申请实施例提供的数据库同步测试的方法,本申请实施例还提供一种数据库同步测试的装置,请参见图2,为该装置的结构示意图,该装置可以包括如下单元。
获得单元201,用于获得源数据表标识和同步数据表标识;
生成单元202,用于生成包含源数据表标识的测试脚本和包含同步数据表标识的查询脚本;其中,测试脚本用于更新源数据表,查询脚本用于查询同步数据表,源数据表指代源数据表标识对应的数据表,同步数据表质点同步数据表标识对应的数据表;
更新单元203,用于通过执行测试脚本更新源数据表;
查询单元204,用于执行查询脚本,得到同步数据表的查询结果;
确定单元205,用于根据查询结果确定源数据库和同步数据库的数据库同步功能是否异常;其中,源数据库为源数据表所属数据库,同步数据库为同步数据表所属数据库。
可选的,获得单元201还用于:
校验源数据库中是否存在源数据表标识对应的数据表;
校验同步数据库中是否存在同步数据表标识对应的数据表;
若源数据表标识和同步数据表标识中至少一者不存在对应的数据表,输出第一提示信息,第一提示信息用于提示修改源数据表标识和同步数据表标识中至少一者。
可选的,生成单元202生成包含源数据表标识的测试脚本和包含同步数据表标识的查询脚本时,具体用于:
生成用于更新源数据表的更新参数;
基于更新参数,源数据表标识和预设的指令模板,生成包含源数据表标识的测试脚本;
基于更新参数,同步数据表标识和预设的指令模板,生成包含同步数据表标识的查询脚本。
可选的,装置还包括登录单元206,用于:
根据源数据库的登录信息和同步数据库的登录信息,分别登录源数据库和同步数据库。
本申请实施例提供的数据库同步测试的装置,其具体工作原理可以参见本申请任一实施例提供的数据库同步测试的方法中相关步骤,此处不再赘述。
本申请提供一种数据库同步测试的装置,包括,获得单元201获得源数据表标识和同步数据表标识;生成单元202生成包含源数据表标识的测试脚本和包含同步数据表标识的查询脚本;其中,测试脚本用于更新源数据表,查询脚本用于查询同步数据表,源数据表指代源数据表标识对应的数据表,同步数据表质点同步数据表标识对应的数据表;更新单元203通过执行测试脚本更新源数据表;查询单元204执行查询脚本,得到同步数据表的查询结果;确定单元205根据查询结果确定源数据库和同步数据库的数据库同步功能是否异常;其中,源数据库为源数据表所属数据库,同步数据库为同步数据表所属数据库。本方案通过生成并执行脚本,自动检验源数据库和同步数据库之间的数据库同步功能是否正常,相比于现有人工检测的方案,提高了测试效率。
本申请实施例还提供一种计算机存储介质,用于存储计算机程序,计算机程序被执行时,具体用于实现本申请实施例所提供的数据库同步测试的方法。
本申请实施例还提供一种电子设备,请参见图3,为该电子设备的结构示意图,该电子设备可以包括存储器301和处理器302。
存储器301用于存储计算机程序;
处理器302用于执行计算机程序,具体用于实现本申请实施例所提供的数据库同步测试的方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种数据库同步测试的方法,其特征在于,包括:
获得源数据表标识和同步数据表标识;
生成包含所述源数据表标识的测试脚本和包含所述同步数据表标识的查询脚本;其中,所述测试脚本用于更新源数据表,所述查询脚本用于查询同步数据表,所述源数据表指代所述源数据表标识对应的数据表,所述同步数据表质点所述同步数据表标识对应的数据表;
通过执行所述测试脚本更新所述源数据表;
执行所述查询脚本,得到所述同步数据表的查询结果;
根据所述查询结果确定源数据库和同步数据库的数据库同步功能是否异常;其中,所述源数据库为所述源数据表所属数据库,所述同步数据库为所述同步数据表所属数据库。
2.根据权利要求1所述的方法,其特征在于,所述获得源数据表标识和同步数据表标识之后,还包括:
校验所述源数据库中是否存在所述源数据表标识对应的数据表;
校验所述同步数据库中是否存在所述同步数据表标识对应的数据表;
若所述源数据表标识和所述同步数据表标识中至少一者不存在对应的数据表,输出第一提示信息,所述第一提示信息用于提示修改所述源数据表标识和所述同步数据表标识中至少一者。
3.根据权利要求1所述的方法,其特征在于,所述生成包含所述源数据表标识的测试脚本和包含所述同步数据表标识的查询脚本,包括:
生成用于更新所述源数据表的更新参数;
基于所述更新参数,所述源数据表标识和预设的指令模板,生成包含所述源数据表标识的测试脚本;
基于所述更新参数,所述同步数据表标识和预设的指令模板,生成包含所述同步数据表标识的查询脚本。
4.根据权利要求1所述的方法,其特征在于,所述通过执行所述测试脚本更新所述源数据表之前,还包括:
根据所述源数据库的登录信息和所述同步数据库的登录信息,分别登录所述源数据库和所述同步数据库。
5.一种数据库同步测试的装置,其特征在于,包括:
获得单元,用于获得源数据表标识和同步数据表标识;
生成单元,用于生成包含所述源数据表标识的测试脚本和包含所述同步数据表标识的查询脚本;其中,所述测试脚本用于更新源数据表,所述查询脚本用于查询同步数据表,所述源数据表指代所述源数据表标识对应的数据表,所述同步数据表质点所述同步数据表标识对应的数据表;
更新单元,用于通过执行所述测试脚本更新所述源数据表;
查询单元,用于执行所述查询脚本,得到所述同步数据表的查询结果;
确定单元,用于根据所述查询结果确定源数据库和同步数据库的数据库同步功能是否异常;其中,所述源数据库为所述源数据表所属数据库,所述同步数据库为所述同步数据表所属数据库。
6.根据权利要求5所述的装置,其特征在于,所述获得单元还用于:
校验所述源数据库中是否存在所述源数据表标识对应的数据表;
校验所述同步数据库中是否存在所述同步数据表标识对应的数据表;
若所述源数据表标识和所述同步数据表标识中至少一者不存在对应的数据表,输出第一提示信息,所述第一提示信息用于提示修改所述源数据表标识和所述同步数据表标识中至少一者。
7.根据权利要求5所述的装置,其特征在于,所述生成单元生成包含所述源数据表标识的测试脚本和包含所述同步数据表标识的查询脚本时,具体用于:
生成用于更新所述源数据表的更新参数;
基于所述更新参数,所述源数据表标识和预设的指令模板,生成包含所述源数据表标识的测试脚本;
基于所述更新参数,所述同步数据表标识和预设的指令模板,生成包含所述同步数据表标识的查询脚本。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括登录单元,用于:
根据所述源数据库的登录信息和所述同步数据库的登录信息,分别登录所述源数据库和所述同步数据库。
9.一种计算机存储介质,其特征在于,用于存储计算机程序,所述计算机程序被执行时,具体用于实现如权利要求1至4任意一项所述的数据库同步测试的方法。
10.一种电子设备,包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,具体用于实现如权利要求1至4任意一项所述的数据库同步测试的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311284383.5A CN117215956A (zh) | 2023-10-07 | 2023-10-07 | 数据库同步测试的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311284383.5A CN117215956A (zh) | 2023-10-07 | 2023-10-07 | 数据库同步测试的方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117215956A true CN117215956A (zh) | 2023-12-12 |
Family
ID=89042396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311284383.5A Pending CN117215956A (zh) | 2023-10-07 | 2023-10-07 | 数据库同步测试的方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117215956A (zh) |
-
2023
- 2023-10-07 CN CN202311284383.5A patent/CN117215956A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271326B (zh) | 云数据库的测试方法及其装置、设备和存储介质 | |
US7953744B2 (en) | Database change verifier | |
CN109254907B (zh) | 一种基于Java的接口测试报告生成方法及系统 | |
WO2012034440A1 (zh) | 一种数据库升级脚本的生成方法和装置 | |
CN112148614B (zh) | 回归测试方法及装置 | |
CN108984337A (zh) | 一种数据同步异常的修复方法、修复装置、介质和计算设备 | |
CN111737349B (zh) | 数据一致性校验方法及装置 | |
CN117312270A (zh) | 一种数据库自动化构建和部署的变更管理方法 | |
US20080172659A1 (en) | Harmonizing a test file and test configuration in a revision control system | |
CN105487912B (zh) | 公共问题修改多分支维护系统及方法 | |
CN117215956A (zh) | 数据库同步测试的方法、装置、设备和存储介质 | |
CN115408032A (zh) | 数据模型管理方法、装置、服务器、介质及产品 | |
CN112256978B (zh) | 一种基于数据模型的数据处理方法、装置、介质 | |
CN112256365B (zh) | 一种自动化管理多语言版本的方法及终端 | |
CN111639478B (zh) | 一种基于excel文档的数据自动稽核方法及系统 | |
CN109558153B (zh) | 版本一致性确定方法、装置及系统 | |
CN113778997B (zh) | 一种数据库版本管理方法、系统及设备 | |
JP2012118609A (ja) | Sql検証システムとその方法およびプログラム | |
CN117971984B (zh) | 分布式数据库集群间表数据的同步方法及系统 | |
CN116991692B (zh) | 一种基于数据库读写的验证方法 | |
CN116225936A (zh) | 一种版本错误数据控制方法及装置 | |
CN117785211A (zh) | 用于检查代码分支同步记录的方法与系统、介质和设备 | |
CN114116800A (zh) | 数据逻辑核查方法及系统 | |
CN117827831A (zh) | 可编辑模型的生成方法、装置、电子设备及存储介质 | |
CN115809797A (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 |