一种应用于同步软件测试的方法和装置制造方法及图纸

技术编号:24168308 阅读:46 留言:0更新日期:2020-05-16 02:08
本发明专利技术涉及数据库技术领域,提供了一种应用于同步软件测试的方法和装置。方法包括获取各备选数据库的数据库元信息,根据所述数据库元信息选择存在字符集差异的至少两个数据库,作为源端数据库和目的数据库;根据选择好的源端数据库中对应的字符集属性和页大小属性,自动化生成源端表结构;启动所述同步软件,将源端数据库中所述自动化生成源端表结构,同步到所述目的数据库;根据同步结果与源端数据中的表结构进行比较,得到测试结果。本发明专利技术提出了更具针对性的同步软件测试的方法,相比较现有技术的普适性的测试过程,本发明专利技术方法切入点更为刁钻,能够直接向同步软件的潜在问题点进行测试,同样的测试结果能够极大的缩减测试时间。

A method and device for testing synchronous software

【技术实现步骤摘要】
一种应用于同步软件测试的方法和装置
本专利技术涉及数据库
,特别是涉及一种应用于同步软件测试的方法和装置。
技术介绍
数据库是数据有组织的集合,为各种应用服务提供数据服务。目前提供数据库服务的厂商越来越多,每种数据库产品的数据组织结构各不相同。为了备份和防灾需求,数据同步的需求也越来越大。在数据同步软件测试过程中,源端数据库产生测试数据是极为重要的测试步骤。现有技术中的测试过程,通常都是按部就班的,以一套普适性的方案来对同步软件进行测试。这种测试方法,通常无法有效的发现同步软件特性和存在的问题,相对而言容易产生漏测的问题。进一步的,目前主要通过插入随机数据的方法在源端数据库产生测试数据。但是此方法有几个弊端:每种数据库的数据类型名称、精度、标度都不相同,表结构语法不相同,需要在运行前详细配置。鉴于此,克服该现有技术所存在的缺陷是本
亟待解决的问题。
技术实现思路
本专利技术要解决的技术问题是现有技术中的测试过程,通常都是按部就班的,以一套普适性的方案来对同步软件进行测试。这种测试方法,通常无法有效的发现同步软件特性和存在的问题,相对而言容易产生漏测的问题。本专利技术进一步要解决的技术问题是现有技术中生成表结构时候,会发生与被赋予表结构的源端数据库不匹配的问题,造成整个数据同步测试过程中的源端数据库准备工作出现纰漏。本专利技术采用如下技术方案:第一方面,本专利技术提供了一种应用于同步软件测试的方法,包括:获取各备选数据库的数据库元信息,根据所述数据库元信息选择存在字符集差异的至少两个数据库,作为源端数据库和目的数据库;根据选择好的源端数据库中对应的字符集属性和页大小属性,自动化生成源端表结构;启动所述同步软件,将源端数据库中所述自动化生成源端表结构,同步到所述目的数据库;根据同步结果与源端数据中的表结构进行比较,得到测试结果。优选的,所述根据所述数据库元信息选择存在字符集差异的至少两个数据库,作为源端数据库和目的数据库,具体包括:选择字符集之间,具有向下兼容的一方作为源端数据库,而另一方作为目的数据库;或者,在所选择的至少两个数据库之间,其字符集相互之间不兼容,则任意选择一方作为源端数据库,而另一方作为目的数据库。优选的,所述根据同步结果与源端数据中的表结构进行比较,具体包括:比较目的数据库被同步过去的目的表结构,与源端数据库中的源端表结构,两者在数据对应性上是否存在偏差;所述偏差具体包括,是否存在字符的异常和/或丢失。优选的,自动获取源数据库属性,包括:根据数据库类型可得到的列类型集合、单表支持的最大列数;结合数据库元信息以及数据库初始化信息得到的页大小属性、单行数据最大长度。优选的,所述根据选择好的源端数据库中对应的字符集属性和页大小属性,自动化生成源端表结构,具体包括:步骤a1)、根据数据库元信息,确定列类型集合Column_SET;单行数据最大长度MAX_ROW_LENGTH;单表支持的最大列数MAX_COLUMNS;步骤b1)、随机生成表的列数colCnt;其中,colCnt的范围为1<=colCnt<=MAX_COLUMNS;步骤c1)、初始化表的列集合cols;此时行数据长度RowLenthCnt设置为0,cols元素数目为0;步骤d1)、进入生成表结构循环,具体,循环起始通过判定列集合cols元素数目是否小于colCnt;如果为真,跳转到步骤e1);否则,跳转到步骤h1);步骤e1)、从列类型集合Column_SET中随机取出一个列类型Column,并确定Column的最大长度是MAX_ROW_LENGTH–RowLenthCnt;步骤f1)、设置Column的列名、精度和标度,并计算Column实际的存储长度len;步骤g1)、判定len+RowLenthCnt是否小于MAX_ROW_LENGTH;如果为真,Column加入表的列集合cols,更新RowLenthCnt,转到步骤d1);否则,舍去Column,转到步骤h1)。步骤h1)、完成表的属性处理,包括增加主键约束和非空约束;步骤i1)、结束表结构生成操作。优选的,所述方法还包括:以表为单位,根据表结构的列信息,针对每一列构造数据生成器,形成表的数据生成器;其中,所有数据类型均转换为JDBC的标准数据类型处理。优选的,为了统一管理列的数据生成器,将数据生成器作为一个抽象类;每个列在生成数据生成器的时候,根据列类型确定所实现的类对象,并输入包括标度和精度在内的列信息,确定数据生成器的各项参数。优选的,在所述同步软件测试过程中,还包括对源端数据库的插入操作,具体包括:步骤a2)、以PreparedStatement的方式执行表的insertSQL;步骤b2)、所述数据生成器生成一行或者多行数据Rows;步骤c2)、表的记录缓冲区中保存Rows中的部分数据;步骤d2)、批量绑定数据Rows;步骤e2)、执行insertSQL;步骤f2)、判定步骤e2)是否执行成功;如果成功,跳转到步骤g2);如果失败,跳转到步骤h2);步骤g2)、执行提交操作,统计此次提交成功的数据数目,记录插入操作成功一次,转到步骤i2);步骤h2)、执行回滚操作,记录插入操作失败一次,转到步骤i2);步骤i2)、更新统计信息,包括插入操作总次数、插入成功次数、插入失败次数,以及表的记录数目。优选的,在所述同步软件测试过程中,还包括对源端数据库的更新操作,具体包括:步骤a3)、表的数据生成器生成一行数据NewData作为新值;至少包含一个列值;步骤b3)、表的记录缓冲区中选取一条记录OldData作为where条件,并从记录缓冲区中淘汰该记录;步骤c3)、构造待参数的语句updateSQL。利用步骤a3)的NewData生成其中的set部分,利用步骤b3)的OldData生成其中的where部分。以PreparedStatement的方式执行updateSQL;步骤d3)、绑定数据,包括步骤a3)的NewData与步骤b3)的OldData;步骤e3)、执行updateSQL;步骤f3)、判定步骤e3)是否执行成功;如果成功,转到步骤g3);如果失败,转到步骤h3);步骤g3)、执行提交操作,统计此次提交更新的数据数目,记录更新操作成功一次,转到步骤i3);步骤h3)、执行回滚操作,记录更新操作失败一次,转到步骤i3);步骤i3)、更新统计信息,包括更新操作总次数,更新成功次数,更新失败次数。第二方面,本专利技术还提供了一种应用于同步软件测试的装置,用于实现第一方面所述的应用于同步软件测试的方法,所述装置包括:至少一个处理器;以及,与所述至少一个处本文档来自技高网...

【技术保护点】
1.一种应用于同步软件测试的方法,其特征在于,包括:/n获取各备选数据库的数据库元信息,根据所述数据库元信息选择存在字符集差异的至少两个数据库,作为源端数据库和目的数据库;/n根据选择好的源端数据库中对应的字符集属性和页大小属性,自动化生成源端表结构;/n启动所述同步软件,将源端数据库中所述自动化生成源端表结构,同步到所述目的数据库;/n根据同步结果与源端数据中的表结构进行比较,得到测试结果。/n

【技术特征摘要】
1.一种应用于同步软件测试的方法,其特征在于,包括:
获取各备选数据库的数据库元信息,根据所述数据库元信息选择存在字符集差异的至少两个数据库,作为源端数据库和目的数据库;
根据选择好的源端数据库中对应的字符集属性和页大小属性,自动化生成源端表结构;
启动所述同步软件,将源端数据库中所述自动化生成源端表结构,同步到所述目的数据库;
根据同步结果与源端数据中的表结构进行比较,得到测试结果。


2.根据权利要求1所述的应用于同步软件测试的方法,其特征在于,所述根据所述数据库元信息选择存在字符集差异的至少两个数据库,作为源端数据库和目的数据库,具体包括:
选择字符集之间,具有向下兼容的一方作为源端数据库,而另一方作为目的数据库;或者,
在所选择的至少两个数据库之间,其字符集相互之间不兼容,则任意选择一方作为源端数据库,而另一方作为目的数据库。


3.根据权利要求2所述的应用于同步软件测试的方法,其特征在于,所述根据同步结果与源端数据中的表结构进行比较,具体包括:
比较目的数据库被同步过去的目的表结构,与源端数据库中的源端表结构,两者在数据对应性上是否存在偏差;所述偏差具体包括,是否存在字符的异常和/或丢失。


4.根据权利要求1所述的应用于同步软件测试的方法,其特征在于,自动获取源数据库属性,包括:
根据数据库类型可得到的列类型集合、单表支持的最大列数;
结合数据库元信息以及数据库初始化信息得到的页大小属性、单行数据最大长度。


5.根据权利要求4所述的应用于同步软件测试的方法,其特征在于,所述根据选择好的源端数据库中对应的字符集属性和页大小属性,自动化生成源端表结构,具体包括:
步骤a1)、根据数据库元信息,确定列类型集合Column_SET;单行数据最大长度MAX_ROW_LENGTH;单表支持的最大列数MAX_COLUMNS;
步骤b1)、随机生成表的列数colCnt;其中,colCnt的范围为1<=colCnt<=MAX_COLUMNS;
步骤c1)、初始化表的列集合cols;此时行数据长度RowLenthCnt设置为0,cols元素数目为0;
步骤d1)、进入生成表结构循环,具体,循环起始通过判定列集合cols元素数目是否小于colCnt;如果为真,跳转到步骤e1);否则,跳转到步骤h1);
步骤e1)、从列类型集合Column_SET中随机取出一个列类型Column,并确定Column的最大长度是MAX_ROW_LENGTH–RowLenthCnt;
步骤f1)、设置Column的列名、精度和标度,并计算Column实际的存储长度len;
步骤g1)、判定len+RowLenthCnt是否小于MAX_ROW_LENGTH;如果为真,Column加入表的列集合cols,更新RowLenthCnt,转到步骤d1);否则,舍去Column,转到步骤h1);
步骤h1)、完成表的属性处理,包括增加主键约束和非空约束;
步骤i1)、结束表结构...

【专利技术属性】
技术研发人员:丁普升付铨冯源
申请(专利权)人:武汉达梦数据库有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1