本发明涉及软件测试技术领域,尤其涉及一种数据库脚本检测方法、装置、电子设备及存储介质。
背景技术:
目前针对数据库脚本的测试,通常是根据项目需求文档和开发设计文档生成测试方案,利用生成的测试方案对数据库脚本逐个进行测试得到各自的测试结果,并分别执行每一数据库脚本得到执行结果,比较每一数据库脚本的测试结果和执行结果,测试结果和执行结果一致的数据库脚本则测试通过。然而,单独的一个数据库脚本符合需求是不能满足用户需求的,数据库脚本最终是为了服务于软件应用,软件应用通过数据库脚本创建的数据库表结构来存储数据。现有技术中,一套软件应用往往支持多种类型的数据库,每种类型的数据库包含多个数据库脚本,利用上述现有的数据库脚本测试方式,需要获取到软件应用中的包含的各个数据库脚本的需求文档和开发设计文档才能对各个数据库脚本进行测试,从而导致检测效率较低。
技术实现要素:
为了解决现有的测试数据库脚本的方式检测效率较低的问题,本发明实施例提供了一种数据库脚本检测方法、装置、电子设备及存储介质。
第一方面,本发明实施例提供了一种数据库脚本检测方法,包括:
获取指定软件应用支持的各个待检测数据库脚本,并获取所述各个待检测数据库脚本的属性信息;
根据所述各个待检测数据库脚本的属性信息对所述各个待检测数据库脚本进行分组,得到分组后的至少一个待检测数据库脚本集合;
针对每一待检测数据库脚本集合,根据所述待检测数据库脚本集合中的待检测数据库脚本的个数确定所述待检测数据库脚本集合的权重;
按照权重由高到低的顺序依次从所述至少一个待检测数据库脚本集合中分别选择一个待检测数据库脚本进行检测;
根据选择的待检测数据库脚本的检测结果确定其所属的待检测数据库脚本集合中其他各个待检测数据库脚本的检测结果。
较佳地,根据所述各个待检测数据库脚本的属性信息对所述各个待检测数据库脚本进行分组,具体包括:
将各个属性均相同的待检测数据库脚本,以及仅有指定属性不同、其他属性均相同,且所述指定属性能够互相转换的待检测数据库脚本分为一组。
较佳地,针对仅有指定属性不同的待检测数据库脚本,通过以下方式确定所述指定属性能够互相转换:
针对仅有指定属性不同的任一待检测数据库脚本,根据预设的数据库差异列表获取所述待检测数据库脚本的指定属性对应的能够转换的目标属性,所述数据库差异列表中存储有不同类型数据库的数据库脚本中能够互相转换的属性信息;
将所述目标属性分别与其他仅有指定属性不同的各待检测数据库脚本的指定属性进行比对;
确定比对结果为一致的待检测数据库脚本的指定属性能够互相转换。
较佳地,所述指定属性至少包括字段的数据类型;所述数据库差异列表中至少包括数据类型的对应关系,所述数据类型的对应关系表征能够互相转换的字段的数据类型的对应关系;
根据预设的数据库差异列表获取所述待检测数据库脚本的指定属性对应的能够转换的目标属性,具体包括:
从所述数据类型的对应关系中查找所述待检测数据库脚本的字段的数据类型对应的目标数据类型;
将所述目标属性分别与其他仅有指定属性不同的各待检测数据库脚本的指定属性进行比对,具体包括:
将所述目标数据类型分别与其他仅有字段的数据类型不同的各待检测数据库脚本的字段的数据类型进行比对。
较佳地,对选择的待检测数据库脚本进行检测,包括:
对所述选择的待检测数据库脚本进行建库完整性验证;并
对所述选择的待检测数据库脚本与所述指定软件应用进行兼容性验证。
较佳地,对所述选择的待检测数据库脚本进行建库完整性验证,具体包括:
针对每一选择的待检测数据库脚本,均执行以下步骤:
获取建库信息,所述建库信息与所述待检测数据库脚本的属性信息类目相同;
根据预设数据库配置信息连接相应数据库客户端,以使所述数据库客户端执行所述待检测数据库脚本以建立数据库;
获取执行后的所述待检测数据库脚本的属性信息;
将所述建库信息与获取的执行后的所述待检测数据库脚本的属性信息进行比对;
当确定比对结果一致时,确定所述待检测数据库脚本的建库完整性验证通过。
较佳地,对所述选择的待检测数据库脚本与所述指定软件应用进行兼容性验证,具体包括:
针对每一选择的待检测数据库脚本,根据预设软件应用自动化部署信息在相应的应用服务部署设备中加载所述指定软件应用,以使所述应用服务部署设备根据所述数据库配置信息与执行所述待检测数据库脚本建立的数据库进行连接,并对所述指定软件应用进行初始化,以及通过预设软件应用自动化测试信息对所述指定软件应用中的功能模块进行自动化测试。
第二方面,本发明实施例提供了一种数据库脚本检测装置,包括:
获取单元,用于获取指定软件应用对应的各个待检测数据库脚本,并获取所述各个待检测数据库脚本的属性信息;
分组单元,用于根据所述各个待检测数据库脚本的属性信息对所述各个待检测数据库脚本进行分组,得到分组后的至少一个待检测数据库脚本集合;
第一确定单元,用于针对每一待检测数据库脚本集合,根据所述待检测数据库脚本集合中的待检测数据库脚本的个数确定所述待检测数据库脚本集合的权重;
检测单元,用于按照权重由高到低的顺序依次从所述至少一个待检测数据库脚本集合中分别选择一个待检测数据库脚本进行检测;
第二确定单元,用于根据选择的待检测数据库脚本的检测结果确定其所属的待检测数据库脚本集合中其他各个待检测数据库脚本的检测结果。
较佳地,所述分组单元,具体用于将各个属性均相同的待检测数据库脚本,以及仅有指定属性不同、其他属性均相同,且所述指定属性能够互相转换的待检测数据库脚本分为一组。
较佳地,所述分组单元,具体用于针对仅有指定属性不同的待检测数据库脚本,通过以下方式确定所述指定属性能够互相转换:针对仅有指定属性不同的任一待检测数据库脚本,根据预设的数据库差异列表获取所述待检测数据库脚本的指定属性对应的能够转换的目标属性,所述数据库差异列表中存储有不同类型数据库的数据库脚本中能够互相转换的属性信息;将所述目标属性分别与其他仅有指定属性不同的各待检测数据库脚本的指定属性进行比对;确定比对结果为一致的待检测数据库脚本的指定属性能够互相转换。
较佳地,所述指定属性至少包括字段的数据类型;所述数据库差异列表中至少包括数据类型的对应关系,所述数据类型的对应关系表征能够互相转换的字段的数据类型的对应关系;
所述分组单元,具体用于从所述数据类型的对应关系中查找所述待检测数据库脚本的字段的数据类型对应的目标数据类型;
将所述目标数据类型分别与其他仅有字段的数据类型不同的各待检测数据库脚本的字段的数据类型进行比对。
较佳地,所述检测单元,具体用于对所述选择的待检测数据库脚本进行建库完整性验证;并对所述选择的待检测数据库脚本与所述指定软件应用进行兼容性验证。
较佳地,所述检测单元,具体用于针对每一选择的待检测数据库脚本,均执行以下步骤:获取建库信息,所述建库信息与所述待检测数据库脚本的属性信息类目相同;根据预设数据库配置信息连接相应数据库客户端,以使所述数据库客户端执行所述待检测数据库脚本以建立数据库;获取执行后的所述待检测数据库脚本的属性信息;将所述建库信息与获取的执行后的所述待检测数据库脚本的属性信息进行比对;当确定比对结果一致时,确定所述待检测数据库脚本的建库完整性验证通过。
较佳地,所述检测单元,具体用于针对每一选择的待检测数据库脚本,根据预设软件应用自动化部署信息在相应的应用服务部署设备中加载所述指定软件应用,以使所述应用服务部署设备根据所述数据库配置信息与执行所述待检测数据库脚本建立的数据库进行连接,并对所述指定软件应用进行初始化,以及通过预设软件应用自动化测试信息对所述指定软件应用中的功能模块进行自动化测试。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明所述的数据库脚本检测方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明所述的数据库脚本检测方法中的步骤。
本发明实施例的有益效果:
本发明实施例中,数据库脚本检测设备首先根据数据库脚本的属性信息对指定软件应用支持的待检测数据库脚本进行分组,得到分组后的至少一个待检测数据库脚本集合(即:横向检测),再根据分组后的每一待检测数据库脚本集合中包含的待检测数据库脚本的个数为每一待检测数据库脚本集合赋予权重,按照权重由高到低的顺序依次从各个待检测数据库脚本集合中分别选择一个待检测数据库脚本进行检测(即:纵向检测),对每一待检测数据库脚本集合中的选择的一个待检测数据库脚本进行检测后,即可根据该待检测数据库脚本的检测结果获得该待检测数据库脚本集合中的其他各待检测数据库脚本的检测结果,这样,大大降低了数据库脚本的检测次数,提高了数据库脚本检测效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例提供的数据库脚本检测方法的实施流程示意图;
图2为本发明实施例提供的确定仅有指定属性不同、其他属性均对应相同的待检测数据库脚本的指定属性能够互相转换的实施流程示意图;
图3为本发明实施例提供的对选择的待检测数据库脚本进行建库完整性验证的实施流程示意图;
图4为本发明实施例提供的数据库脚本检测装置的结构示意图;
图5为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了解决现有的测试数据库脚本的方式检测效率较低的问题,本发明实施例提供了一种数据库脚本检测方法、装置、电子设备及存储介质。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
如图1所示,其为本发明实施例提供的数据库脚本检测方法的实施流程示意图,可以包括以下步骤:
s11、数据库脚本检测设备获取指定软件应用对应的各个待检测数据库脚本,并获取所述各个待检测数据库脚本的属性信息。
具体实施时,数据库脚本检测设备可以为服务器或者终端等设备,指定软件应用对应的各个待检测数据库脚本是指需要进行检测的所述指定软件应用支持的各个待检测数据库脚本,指定软件应用可以支持一种或者多种类型的数据库,每一种类型的数据库包含多个数据库脚本,本发明实施例中涉及的数据库可以为关系型数据库,关系型数据库是采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,这一系列的行和列被称为表,一组表组成了数据库。本发明实施例中所涉及的数据库可以但不限于包括以下类型的数据库:mysql数据库、oracle数据库、db2数据库、sybase数据库等。
具体而言,数据库脚本检测设备获取指定软件应用对应的各个待检测数据库脚本后,获取各个待检测数据库脚本的属性信息,其中,待检测数据库脚本的属性信息至少包括:待检测数据库脚本中包含的表的个数、表的名称、字段个数、字段名称、字段的数据类型、字段的长度、索引和索引个数等属性信息。
s12、根据所述各个待检测数据库脚本的属性信息对所述各个待检测数据库脚本进行分组,得到分组后的至少一个待检测数据库脚本集合。
具体实施时,数据库脚本检测设备根据获取的各个待检测数据库脚本的属性信息对各个待检测数据库脚本进行分组,得到分组后的至少一个待检测数据库脚本集合。
具体地,数据库脚本检测设备将各个属性均相同的待检测数据库脚本,以及仅有指定属性不同、其他属性均相同,且所述指定属性能够互相转换的待检测数据库脚本分为一组,其中,指定属性至少包括:字段的数据类型,还可以包括:字段的长度。
发明人考虑到,在一套软件应用中,不管使用任何类型的数据库,数据库脚本中有些属性需保持一致,如:表的个数、表的名称、字段个数、字段名称、索引、索引个数等属性,但是不同类型的数据库之间也存在差异,如数据类型等,因此,本发明实施例中,针对不同类型数据库的数据库脚本之间存在差异并能够互相转换的属性信息预先存储在本地创建的数据库差异列表中,用于后续对待检测数据库脚本进行分组时的依据。
具体实施过程中,数据库脚本检测设备将包含的表的个数、表的名称、字段个数、字段名称、字段的数据类型、字段的长度、索引和索引个数均对应相同的待检测数据库脚本,以及包含的表的个数、表的名称、字段个数、字段名称、索引和索引个数均对应相同、而字段的数据类型可以互相转换的待检测数据库脚本分为一组。
具体地,可以按照如图2所示的流程确定仅有指定属性不同、其他属性均对应相同的待检测数据库脚本的指定属性能够互相转换:
s21、针对仅有指定属性不同的任一待检测数据库脚本,根据预设的数据库差异列表获取所述待检测数据库脚本的指定属性对应的能够转换的目标属性。
具体实施时,数据库差异列表中存储有不同类型数据库的数据库脚本中能够互相转换的属性信息,具体而言,所述数据库差异列表中至少包括数据类型的对应关系,所述数据类型的对应关系表征不同类型数据库的数据库脚本之间能够互相转换的字段的数据类型的对应关系,较佳的,所述数据库差异列表中还存储有数据长度转换算法,用于不同数据类型之间数据长度大小的换算。数据库脚本检测设备针对表的个数、表的名称、字段个数、字段名称、索引和索引个数均对应相同,仅有字段的数据类型(以及字段的长度)不同的任一待检测数据库脚本,从本地存储的数据库差异列表中包含的数据类型的对应关系中查找所述任一待检测数据库脚本中的字段的数据类型对应的目标数据类型,该目标数据类型即所述任一待检测数据库脚本中的字段的数据类型能够转换成的数据类型。
s22、将所述目标属性分别与其他仅有指定属性不同的各待检测数据库脚本的指定属性进行比对。
具体实施时,数据库脚本检测设备将所述目标数据类型分别与其他仅有字段的数据类型不同的各待检测数据库脚本的字段的数据类型进行比对,获得比对结果。
s23、确定比对结果为一致的待检测数据库脚本的指定属性能够互相转换。
例如,假设进行比较的两个待检测数据库脚本,其中一个为mysql类型,一个为oracle类型,这两个类型的待检测数据库脚本中包含相同的表的个数、表的名称、字段个数、字段名称、索引和索引个数,在各自对应相同的表中包含的同一字段的数据类型不同,例如,在mysql类型的待检测数据库脚本中,在创建的表的名称为“card_info”的表中的字段名称为“rowtitle”的字段的数据类型为“varchar”,该字段的长度大小为“100”,在oracle类型的待检测数据库脚本中,在表的名称为“card_info”的表中的字段名称为“rowtitle”的字段的数据类型为“varchar2”,该字段的长度大小为“100”,则在所述数据类型的对应关系中查找“varchar”对应可以转换成的数据类型,如果查找到“varchar”对应的数据类型为“varchar2”,则说明“varchar”和“varchar2”之间能够互相转换,二者本质相同,基于同样的方式,确定这两个待检测数据库脚本中对应相同的表的相同字段的数据类型是否均可以互相转换,如果是,则确定比对结果为一致,将这两个待检测数据库脚本分到一个组中。
s13、针对每一待检测数据库脚本集合,根据所述待检测数据库脚本集合中的待检测数据库脚本的个数确定所述待检测数据库脚本集合的权重。
具体实施时,数据库脚本检测设备可将待检测数据库脚本集合中包含的待检测数据库脚本的个数确定为该待检测数据库脚本集合的权重。例如,共有7个待检测数据库脚本,根据比对结果分为三个集合,三个集合中包含的待检测数据库脚本的个数依次为4、2、1,则这三个集合的权重可以依次设置为4、2、1。
s14、按照权重由高到低的顺序依次从所述至少一个待检测数据库脚本集合中分别选择一个待检测数据库脚本进行检测。
具体实施时,数据库脚本检测设备只需按照待检测数据库脚本集合的权重由高到低的顺序依次从每一待检测数据库脚本集合中随机选择一个待检测数据库脚本进行检测即可,这样,可以大大降低检测时间,提高检测效率。
具体地,针对选择的每一待检测数据库脚本,均可执行以下步骤进行检测:
对所述选择的待检测数据库脚本进行建库完整性验证;并对所述选择的待检测数据库脚本与所述指定软件应用进行兼容性验证。
在具体实施过程中,针对选择的每一待检测数据库脚本均可按照如图3所示的流程进行建库完整性验证,可以包括以下步骤:
s31、获取建库信息,所述建库信息与待检测数据库脚本的属性信息类目相同。
在具体实施过程中,可以采用数据库脚本建库方式进行建库,数据库脚本检测设备可以通过解析待检测数据库脚本,获取待检测数据库脚本的属性信息,将获取的待检测数据库脚本作为建库信息,将建库信息作为验证所述待检测数据库脚本建库完整性验证的依据。
所述建库信息与所述待检测数据库脚本的属性信息的类目相同,所述建库信息至少包括以下属性信息:所述待检测数据库脚本中包含的表的个数、表的名称、字段个数、字段名称、字段的数据类型、字段的长度、索引和索引个数等属性信息。
s32、根据预设数据库配置信息连接相应数据库客户端,以使所述数据库客户端执行所述待检测数据库脚本以建立数据库。
具体实施时,数据库脚本检测设备预先设置数据配置信息,所述数据库配置信息可以包括:数据库客户端的ip地址、端口号、用户名、密码、数据库类型标识等连接数据库的信息。数据库脚本检测设备根据上述数据库配置信息连接对应的数据库客户端,由该数据库客户端通过执行所述待检测数据库脚本的方式完成建立数据库。
s33、获取执行后的所述待检测数据库脚本的属性信息。
具体实施时,数据库脚本检测设备获取所述数据库客户端执行所述待检测数据库脚本后获得的所述待检测数据库脚本的表的个数、表的名称、字段个数、字段名称、字段的数据类型、字段的长度、索引和索引个数等属性信息。
s34、将所述建库信息与获取的执行后的所述待检测数据库脚本的属性信息进行比对。
具体实施时,数据库脚本检测设备将获取的建库信息中的各个类目与执行后的所述待检测数据库脚本的属性信息对应的类目一一进行比对,获得比对结果。
s35、当确定比对结果一致时,确定所述待检测数据库脚本的建库完整性验证通过。
具体实施时,当确定获取的建库信息中的各个类目与执行后的所述待检测数据库脚本的属性信息对应的类目均一致时,数据库脚本检测设备确定所述待检测数据库脚本的建库完整性验证通过,并生成检测报告,如果获取的建库信息中存在与执行后的所述待检测数据库脚本的属性信息不一致的属性信息时,则确定所述待检测数据库脚本的建库完整性验证不通过,并生成差异性对比报告。
本发明实施例中采用对待检测数据库脚本进行建库完整性验证方式,无需获取选择的每一待检测数据库脚本的需求文档和开发设计文档,只需通过解析待检测数据库脚本获取建库信息,将建库信息作为验证建库完整性的依据,通过执行待检测数据库脚本进行建立数据库,将执行后的待检测数据库脚本的属性信息和建库信息进行比对验证所述待检测数据库脚本的建库完整性,从而,进一步提高了检测效率。
在具体实施过程中,为了进一步提高数据库脚本的适用性,可进一步验证选择的待检测数据库脚本中建库完整性验证通过的待检测数据库脚本与所述指定软件应用的兼容性。
具体地,针对每一选择的待检测数据库脚本,均通过以下方式验证所述待检测数据库脚本与所述指定软件应用的兼容性:根据预设软件应用自动化部署信息在相应的应用服务部署设备中加载所述指定软件应用,以使所述应用服务部署设备根据所述数据库配置信息与执行所述待检测数据库脚本建立的数据库进行连接,并对所述指定软件应用进行初始化,以及通过预设软件应用自动化测试信息对所述指定软件应用中的功能模块进行自动化测试。
具体而言,所述预设软件应用自动化部署信息至少包括以下信息:应用服务部署设备的ip、端口号、软件应用的部署路径以及自动化部署的脚本等信息,所述预设软件应用自动化测试信息至少包括以下信息:软件应用的配置信息(包括ip、端口号等)、自动化测试驱动、自动化测试场景、自动化测试用例等信息。在具体实施时过程中,数据库脚本检测设备根据上述软件应用自动化部署信息指示对应的应用服务部署设备加载所述指定软件应用,应用服务部署设备根据上述数据库配置信息与执行所述待检测数据库脚本的建立的数据库进行连接,进而,对所述指定软件应用进行初始化,通过上述软件应用自动化测试信息对所述指定软件应用中针对数据相关联的功能模块进行自动化测试,并针对每个功能模块收集测试结果,根据针对每个功能模块对应的测试结果判断所述待检测数据库脚本与所述指定软件应用的功能是否一致,如果一致,则说明所述待检测数据库脚本满足所述指定软件应用功能。
s15、根据选择的待检测数据库脚本的检测结果确定其所属的待检测数据库脚本集合中其他各个待检测数据库脚本的检测结果。
具体实施时,数据库脚本检测设备将选择的待检测数据库脚本的检测结果确定为与其所属的待检测数据库脚本集合中其他各个待检测数据库脚本的检测结果相同。也就是说,针对每一个分组后得到的待检测数据库脚本集合,只需从每一集合中各选择一个数据库脚本进行检测即可,每一集合中的所有待检测数据库脚本的检测结果一致。进而,根据上述每一步骤的检测结果生成检测报告,可以包括:差异性对比报告(即当待检测数据库脚本的建库完整性验证不通过时生成的报告)、横向检测报告(即待检测数据库脚本的分组结果),和纵向检测报告(即上述待检测数据库脚本与所述指定软件应用的兼容性验证结果),以向开发人员提供直观的检测结果。
由于在现有软件开发环境中,一套软件应用通常不是在开发初期时同时支持多种类型的数据库,因为数据库是在迭代更新,新的数据库厂商也在迅速崛起,因此,软件应用在更新迭代过程中会增加支持的数据类型,如果仅仅依靠项目文档和开发设计文档产生的测试方案对数据库脚本进行测试通常比较滞后,而本申请中提供的数据库脚本检测方法,首先通过横向对比的方式对比软件应用中所支持的数据库脚本之间的差异,针对没有功能变化而只是增加了新的数据库类型的软件应用来说,只需将新建立的数据库脚本与原本存在的数据库脚本进行一次横向对比,便可确定该新增的数据库脚本所归属的待检测数据库脚本集合,根据该集合中已获得的检测结果即可得知该新增的数据库脚本是否符合软件应用。
基于同一发明构思,本发明实施例还提供了一种数据库脚本检测装置,由于上述数据库脚本检测装置解决问题的原理与数据库脚本检测方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,其为本发明实施例提供的数据库脚本检测装置的结构示意图,可以包括:
获取单元41,用于获取指定软件应用对应的各个待检测数据库脚本,并获取所述各个待检测数据库脚本的属性信息;
分组单元42,用于根据所述各个待检测数据库脚本的属性信息对所述各个待检测数据库脚本进行分组,得到分组后的至少一个待检测数据库脚本集合;
第一确定单元43,用于针对每一待检测数据库脚本集合,根据所述待检测数据库脚本集合中的待检测数据库脚本的个数确定所述待检测数据库脚本集合的权重;
检测单元44,用于按照权重由高到低的顺序依次从所述至少一个待检测数据库脚本集合中分别选择一个待检测数据库脚本进行检测;
第二确定单元45,用于根据选择的待检测数据库脚本的检测结果确定其所属的待检测数据库脚本集合中其他各个待检测数据库脚本的检测结果。
较佳地,所述分组单元42,具体用于将各个属性均相同的待检测数据库脚本,以及仅有指定属性不同、其他属性均相同,且所述指定属性能够互相转换的待检测数据库脚本分为一组。
较佳地,所述分组单元42,具体用于针对仅有指定属性不同的待检测数据库脚本,通过以下方式确定所述指定属性能够互相转换:针对仅有指定属性不同的任一待检测数据库脚本,根据预设的数据库差异列表获取所述待检测数据库脚本的指定属性对应的能够转换的目标属性,所述数据库差异列表中存储有不同类型数据库的数据库脚本中能够互相转换的属性信息;将所述目标属性分别与其他仅有指定属性不同的各待检测数据库脚本的指定属性进行比对;确定比对结果为一致的待检测数据库脚本的指定属性能够互相转换。
较佳地,所述指定属性至少包括字段的数据类型;所述数据库差异列表中至少包括数据类型的对应关系,所述数据类型的对应关系表征能够互相转换的字段的数据类型的对应关系;
所述分组单元42,具体用于从所述数据类型的对应关系中查找所述待检测数据库脚本的字段的数据类型对应的目标数据类型;
将所述目标数据类型分别与其他仅有字段的数据类型不同的各待检测数据库脚本的字段的数据类型进行比对。
较佳地,所述检测单元44,具体用于对所述选择的待检测数据库脚本进行建库完整性验证;并对所述选择的待检测数据库脚本与所述指定软件应用进行兼容性验证。
较佳地,所述检测单元44,具体用于针对每一选择的待检测数据库脚本,均执行以下步骤:获取建库信息,所述建库信息与所述待检测数据库脚本的属性信息类目相同;根据预设数据库配置信息连接相应数据库客户端,以使所述数据库客户端执行所述待检测数据库脚本以建立数据库;获取执行后的所述待检测数据库脚本的属性信息;将所述建库信息与获取的执行后的所述待检测数据库脚本的属性信息进行比对;当确定比对结果一致时,确定所述待检测数据库脚本的建库完整性验证通过。
较佳地,所述检测单元44,具体用于针对每一选择的待检测数据库脚本,根据预设软件应用自动化部署信息在相应的应用服务部署设备中加载所述指定软件应用,以使所述应用服务部署设备根据所述数据库配置信息与执行所述待检测数据库脚本建立的数据库进行连接,并对所述指定软件应用进行初始化,以及通过预设软件应用自动化测试信息对所述指定软件应用中的功能模块进行自动化测试。
基于同一技术构思,本发明实施例还提供了一种电子设备500,参照图5所示,电子设备500用于实施上述方法实施例记载的数据库脚本检测方法,该实施例的电子设备500可以包括:存储器501、处理器502以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如数据库脚本检测程序。所述处理器执行所述计算机程序时实现上述各个数据库脚本检测方法实施例中的步骤,例如图1所示的步骤s11。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如41。
本发明实施例中不限定上述存储器501、处理器502之间的具体连接介质。本申请实施例在图5中以存储器501、处理器502之间通过总线503连接,总线503在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线503可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器501可以是易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器501也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd)、或者存储器501是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器501可以是上述存储器的组合。
处理器502,用于实现如图1所示的一种数据库脚本检测方法,包括:
所述处理器502,用于调用所述存储器501中存储的计算机程序执行如图1中所示的数据库脚本检测方法。
本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本发明提供的数据库脚本检测方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的数据库脚本检测方法中的步骤,例如,所述电子设备可以执行如图1中所示的数据库脚本检测方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。